From be6492330f3f9898b49cbf7c589e873543627f28 Mon Sep 17 00:00:00 2001 From: Yuwen Zhang Date: Wed, 30 Oct 2024 17:57:11 -0700 Subject: [PATCH 01/14] cargo machete --- Cargo.lock | 82 ++------------------------- crates/core/machine/Cargo.toml | 2 - crates/eval/Cargo.toml | 2 - crates/perf/Cargo.toml | 7 --- crates/prover/Cargo.toml | 6 -- crates/sdk/Cargo.toml | 1 - crates/stark/Cargo.toml | 2 - examples/groth16/script/Cargo.toml | 1 - examples/tendermint/script/Cargo.toml | 1 - tests/bls12381-double/Cargo.toml | 1 - tests/ed-add/Cargo.toml | 2 - tests/rand/Cargo.toml | 1 - 12 files changed, 4 insertions(+), 104 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 748f845ec..0723e9bfd 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1144,19 +1144,6 @@ dependencies = [ "constant_time_eq", ] -[[package]] -name = "blake3" -version = "1.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d82033247fd8e890df8f740e407ad4d038debb9eb1f40533fffb32e7d17dc6f7" -dependencies = [ - "arrayref", - "arrayvec", - "cc", - "cfg-if", - "constant_time_eq", -] - [[package]] name = "block-buffer" version = "0.9.0" @@ -3318,19 +3305,6 @@ dependencies = [ "tower-service", ] -[[package]] -name = "hyper-tls" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" -dependencies = [ - "bytes 1.7.2", - "hyper 0.14.31", - "native-tls", - "tokio", - "tokio-native-tls", -] - [[package]] name = "hyper-tls" version = "0.6.0" @@ -4229,15 +4203,6 @@ dependencies = [ "serde", ] -[[package]] -name = "p3-blake3" -version = "0.1.0" -source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#db3d45d4ec899efaf8f7234a8573f285fbdda5db" -dependencies = [ - "blake3", - "p3-symmetric", -] - [[package]] name = "p3-bn254-fr" version = "0.1.0" @@ -5199,23 +5164,19 @@ dependencies = [ "http 0.2.12", "http-body 0.4.6", "hyper 0.14.31", - "hyper-tls 0.5.0", "ipnet", "js-sys", "log", "mime", - "native-tls", "once_cell", "percent-encoding", "pin-project-lite", - "rustls-pemfile 1.0.4", "serde", "serde_json", "serde_urlencoded", "sync_wrapper 0.1.2", "system-configuration 0.5.1", "tokio", - "tokio-native-tls", "tower-service", "url", "wasm-bindgen", @@ -5241,7 +5202,7 @@ dependencies = [ "http-body-util", "hyper 1.5.0", "hyper-rustls", - "hyper-tls 0.6.0", + "hyper-tls", "hyper-util", "ipnet", "js-sys", @@ -5253,7 +5214,7 @@ dependencies = [ "pin-project-lite", "quinn", "rustls 0.23.15", - "rustls-pemfile 2.2.0", + "rustls-pemfile", "rustls-pki-types", "serde", "serde_json", @@ -5512,21 +5473,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fcaf18a4f2be7326cd874a5fa579fae794320a0f388d365dca7e480e55f83f8a" dependencies = [ "openssl-probe", - "rustls-pemfile 2.2.0", + "rustls-pemfile", "rustls-pki-types", "schannel", "security-framework", ] -[[package]] -name = "rustls-pemfile" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" -dependencies = [ - "base64 0.21.7", -] - [[package]] name = "rustls-pemfile" version = "2.2.0" @@ -6187,7 +6139,6 @@ dependencies = [ "num_cpus", "p3-air", "p3-baby-bear", - "p3-blake3", "p3-challenger", "p3-field", "p3-keccak-air", @@ -6273,8 +6224,6 @@ dependencies = [ "anyhow", "bincode", "clap", - "csv", - "p3-baby-bear", "reqwest 0.12.8", "serde", "serde_json", @@ -6315,22 +6264,15 @@ dependencies = [ name = "sp1-perf" version = "3.0.0" dependencies = [ - "anyhow", "bincode", "clap", - "csv", "p3-baby-bear", - "reqwest 0.12.8", - "serde", - "serde_json", - "slack-rust-rs", "sp1-core-executor", "sp1-cuda", "sp1-prover", "sp1-sdk", "sp1-stark", "time 0.3.36", - "tokio", ] [[package]] @@ -6359,7 +6301,6 @@ dependencies = [ "dirs", "eyre", "itertools 0.13.0", - "lazy_static", "lru", "num-bigint 0.4.6", "p3-baby-bear", @@ -6369,8 +6310,6 @@ dependencies = [ "p3-field", "p3-matrix", "p3-symmetric", - "rayon", - "reqwest 0.11.27", "serde", "serde_json", "serial_test", @@ -6382,8 +6321,6 @@ dependencies = [ "sp1-recursion-core", "sp1-recursion-gnark-ffi", "sp1-stark", - "subtle-encoding", - "tempfile", "thiserror", "tracing", "tracing-subscriber", @@ -6576,7 +6513,6 @@ name = "sp1-stark" version = "3.0.0" dependencies = [ "arrayref", - "getrandom 0.2.15", "hashbrown 0.14.5", "itertools 0.13.0", "num-traits", @@ -6602,7 +6538,6 @@ dependencies = [ "strum", "strum_macros", "sysinfo", - "thiserror", "tracing", ] @@ -6787,15 +6722,6 @@ version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" -[[package]] -name = "subtle-encoding" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dcb1ed7b8330c5eed5441052651dd7a12c75e2ed88f2ec024ae1fa3a5e59945" -dependencies = [ - "zeroize", -] - [[package]] name = "surf" version = "2.3.2" @@ -7289,7 +7215,7 @@ dependencies = [ "pin-project", "prost", "rustls-native-certs", - "rustls-pemfile 2.2.0", + "rustls-pemfile", "socket2", "tokio", "tokio-rustls", diff --git a/crates/core/machine/Cargo.toml b/crates/core/machine/Cargo.toml index 3b0b0f34f..10694f12c 100644 --- a/crates/core/machine/Cargo.toml +++ b/crates/core/machine/Cargo.toml @@ -19,7 +19,6 @@ p3-air = { workspace = true } p3-baby-bear = { workspace = true } p3-challenger = { workspace = true } p3-field = { workspace = true } -p3-blake3 = { workspace = true } p3-keccak-air = { workspace = true } p3-matrix = { workspace = true } p3-maybe-rayon = { workspace = true, features = ["parallel"] } @@ -65,7 +64,6 @@ sp1-zkvm = { workspace = true } sp1-core-executor = { workspace = true, features = ["programs"] } [features] -neon = ["p3-blake3/neon"] programs = [] debug = [] bigint-rug = ["sp1-curves/bigint-rug"] diff --git a/crates/eval/Cargo.toml b/crates/eval/Cargo.toml index 6cb700a46..e986c8811 100644 --- a/crates/eval/Cargo.toml +++ b/crates/eval/Cargo.toml @@ -12,12 +12,10 @@ categories = { workspace = true } [dependencies] sp1-prover = { workspace = true } sp1-sdk = { workspace = true } -p3-baby-bear = { workspace = true } sp1-stark = { workspace = true } anyhow = "1.0.83" clap = { version = "4.5.9", features = ["derive"] } -csv = "1.3.0" serde = "1.0.204" bincode = "1.3.3" time = "0.3.26" diff --git a/crates/perf/Cargo.toml b/crates/perf/Cargo.toml index 4f3671135..93ae71694 100644 --- a/crates/perf/Cargo.toml +++ b/crates/perf/Cargo.toml @@ -17,16 +17,9 @@ p3-baby-bear = { workspace = true } sp1-stark = { workspace = true } sp1-cuda = { workspace = true } -anyhow = "1.0.83" clap = { version = "4.5.9", features = ["derive"] } -csv = "1.3.0" -serde = "1.0.204" bincode = "1.3.3" time = "0.3.26" -slack-rust = { package = "slack-rust-rs", version = "0.0.1" } -tokio = { version = "1.39.0", features = ["full"] } -reqwest = { version = "0.12.4", features = ["json"] } -serde_json = "1.0.104" [features] native-gnark = ["sp1-sdk/native-gnark"] diff --git a/crates/prover/Cargo.toml b/crates/prover/Cargo.toml index a4fc480c7..2a57c7bfd 100644 --- a/crates/prover/Cargo.toml +++ b/crates/prover/Cargo.toml @@ -27,7 +27,6 @@ p3-bn254-fr = { workspace = true } p3-commit = { workspace = true } bincode = "1.3.3" serde = { version = "1.0", features = ["derive", "rc"] } -rayon = "1.10.0" itertools = "0.13.0" tracing = "0.1.40" tracing-subscriber = "0.3.18" @@ -35,15 +34,11 @@ serde_json = "1.0.121" clap = { version = "4.5.9", features = ["derive", "env"] } anyhow = "1.0.83" dirs = "5.0.1" -tempfile = "3.10.1" -subtle-encoding = "0.5.1" serial_test = "3.1.1" num-bigint = "0.4.6" thiserror = "1.0.63" lru = "0.12.4" eyre = "0.6.12" -reqwest = { version = "0.11", features = ["blocking"] } -lazy_static = "1.5.0" [[bin]] name = "build_plonk_bn254" @@ -66,7 +61,6 @@ name = "e2e" path = "scripts/e2e.rs" [features] -neon = ["sp1-core-machine/neon"] native-gnark = ["sp1-recursion-gnark-ffi/native"] export-tests = [] debug = ["sp1-core-machine/debug"] diff --git a/crates/sdk/Cargo.toml b/crates/sdk/Cargo.toml index ffedbe26d..de9c70c18 100644 --- a/crates/sdk/Cargo.toml +++ b/crates/sdk/Cargo.toml @@ -55,7 +55,6 @@ backoff = { version = "0.4", features = ["tokio"], optional = true } [features] default = ["network"] -neon = ["sp1-core-machine/neon"] native-gnark = ["sp1-prover/native-gnark"] # TODO: Once alloy has a 1.* release, we can likely remove this feature flag, as there will be less # dependency resolution issues. diff --git a/crates/stark/Cargo.toml b/crates/stark/Cargo.toml index 6865e1f7d..548dc57bb 100644 --- a/crates/stark/Cargo.toml +++ b/crates/stark/Cargo.toml @@ -39,10 +39,8 @@ rayon-scan = "0.1.1" arrayref = "0.3.8" strum = "0.26.3" strum_macros = "0.26.4" -getrandom = { version = "0.2.15", features = ["custom"] } sysinfo = "0.30.13" num-traits = "0.2.19" -thiserror = "1.0.64" [dev-dependencies] sp1-zkvm = { workspace = true } diff --git a/examples/groth16/script/Cargo.toml b/examples/groth16/script/Cargo.toml index a9768a95b..24e96a2fc 100644 --- a/examples/groth16/script/Cargo.toml +++ b/examples/groth16/script/Cargo.toml @@ -5,7 +5,6 @@ edition = { workspace = true } publish = false [dependencies] -hex = "0.4.3" sp1-sdk = { workspace = true } [build-dependencies] diff --git a/examples/tendermint/script/Cargo.toml b/examples/tendermint/script/Cargo.toml index af778202d..4e60dab52 100644 --- a/examples/tendermint/script/Cargo.toml +++ b/examples/tendermint/script/Cargo.toml @@ -6,7 +6,6 @@ publish = false [dependencies] sp1-sdk = { workspace = true } -serde = { version = "1.0", default-features = false, features = ["derive"] } serde_json = { version = "1.0", default-features = false, features = ["alloc"] } tendermint-light-client-verifier = { version = "0.35.0", default-features = false, features = [ "rust-crypto", diff --git a/tests/bls12381-double/Cargo.toml b/tests/bls12381-double/Cargo.toml index 33bc133f7..f93909483 100644 --- a/tests/bls12381-double/Cargo.toml +++ b/tests/bls12381-double/Cargo.toml @@ -6,4 +6,3 @@ publish = false [dependencies] sp1-zkvm = { path = "../../crates/zkvm/entrypoint" } -num = { version = "0.4.1", default-features = false } diff --git a/tests/ed-add/Cargo.toml b/tests/ed-add/Cargo.toml index 9e820d6b6..0beb43f4f 100644 --- a/tests/ed-add/Cargo.toml +++ b/tests/ed-add/Cargo.toml @@ -6,5 +6,3 @@ publish = false [dependencies] sp1-zkvm = { path = "../../crates/zkvm/entrypoint" } -hex-literal = "0.4.1" -num = { version = "0.4.1", default-features = false } diff --git a/tests/rand/Cargo.toml b/tests/rand/Cargo.toml index 1d432a389..fed3efb4c 100644 --- a/tests/rand/Cargo.toml +++ b/tests/rand/Cargo.toml @@ -6,5 +6,4 @@ publish = false [dependencies] sp1-zkvm = { path = "../../crates/zkvm/entrypoint" } -sp1-derive = { path = "../../crates/derive" } rand = "0.8.5" From eabcfa657c1e42064b2665f6f341acd26e25a183 Mon Sep 17 00:00:00 2001 From: Yuwen Zhang Date: Wed, 30 Oct 2024 18:02:41 -0700 Subject: [PATCH 02/14] add rust profiler --- rust_build_profiler.py | 135 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 135 insertions(+) create mode 100644 rust_build_profiler.py diff --git a/rust_build_profiler.py b/rust_build_profiler.py new file mode 100644 index 000000000..91a001bb9 --- /dev/null +++ b/rust_build_profiler.py @@ -0,0 +1,135 @@ +#!/usr/bin/env python3 +import subprocess +import os +from datetime import datetime +import argparse +from pathlib import Path +from bs4 import BeautifulSoup +import re + +class RustBuildProfiler: + def __init__(self, project_path="."): + self.project_path = Path(project_path) + self.timings_dir = self.project_path / "target" / "cargo-timings" + + def run_build_with_timing(self): + """Run cargo build with timing flags enabled""" + print("Running cargo build with timing enabled...") + cmd = [ + "cargo", "build", + "--timings", + "--release", # Optional: change to debug if needed + "--package", "sp1-sdk" + ] + + try: + subprocess.run(cmd, cwd=self.project_path, check=True) + except subprocess.CalledProcessError as e: + print(f"Error running cargo build: {e}") + return False + return True + + def get_latest_timing_file(self): + """Get the most recent timing HTML file""" + if not self.timings_dir.exists(): + return None + + timing_files = list(self.timings_dir.glob("cargo-timing-*.html")) + if not timing_files: + return None + + return max(timing_files, key=lambda f: f.stat().st_mtime) + + def parse_duration(self, duration_str): + """Parse duration string to seconds""" + if 'ms' in duration_str: + return float(duration_str.replace('ms', '')) / 1000 + elif 's' in duration_str: + return float(duration_str.replace('s', '')) + return 0 + + def analyze_timings(self, timing_file): + """Analyze the timing data from HTML and return formatted results""" + with open(timing_file) as f: + soup = BeautifulSoup(f, 'html.parser') + + # Find all timing entries + unit_times = [] + + # Look for timing data in the HTML + # First try the newer cargo timing format + timing_divs = soup.find_all('div', class_='artifact') + if timing_divs: + for div in timing_divs: + name_elem = div.find('a', class_='name') + time_elem = div.find('span', class_='time') + + if name_elem and time_elem: + name = name_elem.text.strip() + duration_str = time_elem.text.strip() + duration = self.parse_duration(duration_str) + unit_times.append((duration, name)) + else: + # Fall back to older format + tables = soup.find_all('table') + for table in tables: + rows = table.find_all('tr') + for row in rows[1:]: # Skip header row + cols = row.find_all('td') + if len(cols) >= 2: + name = cols[0].text.strip() + duration_str = cols[1].text.strip() + duration = self.parse_duration(duration_str) + unit_times.append((duration, name)) + + # Sort by duration (descending) + unit_times.sort(reverse=True) + + # Calculate total build time + total_time = sum(duration for duration, _ in unit_times) + + return unit_times, total_time + + def format_duration(self, duration): + """Format duration in seconds to a human-readable string""" + if duration < 1: + return f"{duration*1000:.1f}ms" + return f"{duration:.2f}s" + + def run_profile(self): + """Run the complete profiling process""" + if not self.run_build_with_timing(): + return + + timing_file = self.get_latest_timing_file() + if not timing_file: + print("No timing files found. Make sure the build completed successfully.") + return + + unit_times, total_time = self.analyze_timings(timing_file) + + # Print results + print("\nBuild Time Analysis") + print("=" * 60) + print(f"Total Build Time: {self.format_duration(total_time)}") + print("\nTop 10 Longest Building Units:") + print("-" * 60) + print(f"{'Duration':>12} | {'% of Total':>10} | Unit Name") + print("-" * 60) + + for duration, name in unit_times[:10]: + percentage = (duration / total_time) * 100 + print(f"{self.format_duration(duration):>12} | {percentage:>9.1f}% | {name}") + + print(f"\nFull report available at: {timing_file}") + +def main(): + parser = argparse.ArgumentParser(description="Profile Rust project build times") + parser.add_argument("--path", default=".", help="Path to Rust project (default: current directory)") + args = parser.parse_args() + + profiler = RustBuildProfiler(args.path) + profiler.run_profile() + +if __name__ == "__main__": + main() \ No newline at end of file From cfd6511731bd26bd994f6e2de26a7db9d86fe4ee Mon Sep 17 00:00:00 2001 From: Yuwen Zhang Date: Wed, 30 Oct 2024 19:08:36 -0700 Subject: [PATCH 03/14] cargo update --- Cargo.lock | 426 ++++++++++++++++++++++++++--------------------------- 1 file changed, 212 insertions(+), 214 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0723e9bfd..5b6738acd 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -137,7 +137,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "629b62e38d471cc15fea534eb7283d2f8a4e8bdb1811bcc5d66dda6cfce6fae1" dependencies = [ "alloy-eips", - "alloy-primitives 0.8.8", + "alloy-primitives 0.8.10", "alloy-rlp", "alloy-serde", "c-kzg", @@ -150,7 +150,7 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0069cf0642457f87a01a014f6dc29d5d893cd4fd8fddf0c3cdfad1bb3ebafc41" dependencies = [ - "alloy-primitives 0.8.8", + "alloy-primitives 0.8.10", "alloy-rlp", "serde", ] @@ -161,7 +161,7 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea59dc42102bc9a1905dc57901edc6dd48b9f38115df86c7d252acba70d71d04" dependencies = [ - "alloy-primitives 0.8.8", + "alloy-primitives 0.8.10", "alloy-rlp", "serde", ] @@ -174,7 +174,7 @@ checksum = "f923dd5fca5f67a43d81ed3ebad0880bd41f6dd0ada930030353ac356c54cd0f" dependencies = [ "alloy-eip2930", "alloy-eip7702", - "alloy-primitives 0.8.8", + "alloy-primitives 0.8.10", "alloy-rlp", "alloy-serde", "c-kzg", @@ -190,8 +190,8 @@ version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3c717b5298fad078cd3a418335b266eba91b511383ca9bd497f742d5975d5ab" dependencies = [ - "alloy-primitives 0.8.8", - "alloy-sol-types 0.8.8", + "alloy-primitives 0.8.10", + "alloy-sol-types 0.8.10", "serde", "serde_json", "thiserror", @@ -208,11 +208,11 @@ dependencies = [ "alloy-eips", "alloy-json-rpc", "alloy-network-primitives", - "alloy-primitives 0.8.8", + "alloy-primitives 0.8.10", "alloy-rpc-types-eth", "alloy-serde", "alloy-signer", - "alloy-sol-types 0.8.8", + "alloy-sol-types 0.8.10", "async-trait", "auto_impl", "futures-utils-wasm", @@ -226,7 +226,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94ad40869867ed2d9cd3842b1e800889e5b49e6b92da346e93862b4a741bedf3" dependencies = [ "alloy-eips", - "alloy-primitives 0.8.8", + "alloy-primitives 0.8.10", "alloy-serde", "serde", ] @@ -238,7 +238,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ccb3ead547f4532bc8af961649942f0b9c16ee9226e26caa3f38420651cc0bf4" dependencies = [ "alloy-rlp", - "bytes 1.7.2", + "bytes 1.8.0", "cfg-if", "const-hex", "derive_more 0.99.18", @@ -255,12 +255,12 @@ dependencies = [ [[package]] name = "alloy-primitives" -version = "0.8.8" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38f35429a652765189c1c5092870d8360ee7b7769b09b06d89ebaefd34676446" +checksum = "8edae627382349b56cd6a7a2106f4fd69b243a9233e560c55c2e03cabb7e1d3c" dependencies = [ "alloy-rlp", - "bytes 1.7.2", + "bytes 1.8.0", "cfg-if", "const-hex", "derive_more 1.0.0", @@ -283,24 +283,24 @@ dependencies = [ [[package]] name = "alloy-rlp" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26154390b1d205a4a7ac7352aa2eb4f81f391399d4e2f546fb81a2f8bb383f62" +checksum = "da0822426598f95e45dd1ea32a738dac057529a709ee645fcc516ffa4cbde08f" dependencies = [ "alloy-rlp-derive", "arrayvec", - "bytes 1.7.2", + "bytes 1.8.0", ] [[package]] name = "alloy-rlp-derive" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d0f2d905ebd295e7effec65e5f6868d153936130ae718352771de3e7d03c75c" +checksum = "2b09cae092c27b6f1bde952653a22708691802e57bfef4a2973b80bea21efd3f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.85", ] [[package]] @@ -312,10 +312,10 @@ dependencies = [ "alloy-consensus", "alloy-eips", "alloy-network-primitives", - "alloy-primitives 0.8.8", + "alloy-primitives 0.8.10", "alloy-rlp", "alloy-serde", - "alloy-sol-types 0.8.8", + "alloy-sol-types 0.8.10", "cfg-if", "derive_more 1.0.0", "hashbrown 0.14.5", @@ -330,7 +330,7 @@ version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "731f75ec5d383107fd745d781619bd9cedf145836c51ecb991623d41278e71fa" dependencies = [ - "alloy-primitives 0.8.8", + "alloy-primitives 0.8.10", "serde", "serde_json", ] @@ -341,7 +341,7 @@ version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "307324cca94354cd654d6713629f0383ec037e1ff9e3e3d547212471209860c0" dependencies = [ - "alloy-primitives 0.8.8", + "alloy-primitives 0.8.10", "async-trait", "auto_impl", "elliptic-curve", @@ -357,7 +357,7 @@ checksum = "9fabe917ab1778e760b4701628d1cae8e028ee9d52ac6307de4e1e9286ab6b5f" dependencies = [ "alloy-consensus", "alloy-network", - "alloy-primitives 0.8.8", + "alloy-primitives 0.8.10", "alloy-signer", "async-trait", "k256", @@ -376,21 +376,21 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.85", ] [[package]] name = "alloy-sol-macro" -version = "0.8.8" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b2395336745358cc47207442127c47c63801a7065ecc0aa928da844f8bb5576" +checksum = "841eabaa4710f719fddbc24c95d386eae313f07e6da4babc25830ee37945be0c" dependencies = [ - "alloy-sol-macro-expander 0.8.8", - "alloy-sol-macro-input 0.8.8", + "alloy-sol-macro-expander 0.8.10", + "alloy-sol-macro-input 0.8.10", "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.85", ] [[package]] @@ -406,26 +406,26 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.85", "syn-solidity 0.7.7", "tiny-keccak", ] [[package]] name = "alloy-sol-macro-expander" -version = "0.8.8" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed5047c9a241df94327879c2b0729155b58b941eae7805a7ada2e19436e6b39" +checksum = "6672337f19d837b9f7073c45853aeb528ed9f7dd6a4154ce683e9e5cb7794014" dependencies = [ - "alloy-sol-macro-input 0.8.8", + "alloy-sol-macro-input 0.8.10", "const-hex", "heck", "indexmap 2.6.0", "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.79", - "syn-solidity 0.8.8", + "syn 2.0.85", + "syn-solidity 0.8.10", "tiny-keccak", ] @@ -440,23 +440,23 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.85", "syn-solidity 0.7.7", ] [[package]] name = "alloy-sol-macro-input" -version = "0.8.8" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dee02a81f529c415082235129f0df8b8e60aa1601b9c9298ffe54d75f57210b" +checksum = "0dff37dd20bfb118b777c96eda83b2067f4226d2644c5cfa00187b3bc01770ba" dependencies = [ "const-hex", "dunce", "heck", "proc-macro2", "quote", - "syn 2.0.79", - "syn-solidity 0.8.8", + "syn 2.0.85", + "syn-solidity 0.8.10", ] [[package]] @@ -473,12 +473,12 @@ dependencies = [ [[package]] name = "alloy-sol-types" -version = "0.8.8" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2841af22d99e2c0f82a78fe107b6481be3dd20b89bfb067290092794734343a" +checksum = "aa828bb1b9a6dc52208fbb18084fb9ce2c30facc2bfda6a5d922349b4990354f" dependencies = [ - "alloy-primitives 0.8.8", - "alloy-sol-macro 0.8.8", + "alloy-primitives 0.8.10", + "alloy-sol-macro 0.8.10", "const-hex", ] @@ -514,9 +514,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.15" +version = "0.6.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526" +checksum = "23a1e53f0f5d86382dafe1cf314783b2044280f406e7e1506368220ad11b1338" dependencies = [ "anstyle", "anstyle-parse", @@ -529,43 +529,43 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.8" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1" +checksum = "8365de52b16c035ff4fcafe0092ba9390540e3e352870ac09933bebcaa2c8c56" [[package]] name = "anstyle-parse" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb" +checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.1.1" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a" +checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.4" +version = "3.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8" +checksum = "2109dbce0e72be3ec00bed26e6a7479ca384ad226efdd66db8fa2e3a38c83125" dependencies = [ "anstyle", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] name = "anyhow" -version = "1.0.89" +version = "1.0.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86fdf8605db99b54d3cd748a44c6d04df638eb5dafb219b135d0149bd0db01f6" +checksum = "c042108f3ed77fd83760a5fd79b53be043192bb3b9dba91d8c574c0ada7850c8" dependencies = [ "backtrace", ] @@ -748,7 +748,7 @@ dependencies = [ "async-task", "concurrent-queue", "fastrand 2.1.1", - "futures-lite 2.3.0", + "futures-lite 2.4.0", "slab", ] @@ -763,7 +763,7 @@ dependencies = [ "async-io", "async-lock", "blocking", - "futures-lite 2.3.0", + "futures-lite 2.4.0", "once_cell", ] @@ -777,7 +777,7 @@ dependencies = [ "cfg-if", "concurrent-queue", "futures-io", - "futures-lite 2.3.0", + "futures-lite 2.4.0", "parking", "polling", "rustix", @@ -812,7 +812,7 @@ dependencies = [ "futures-channel", "futures-core", "futures-io", - "futures-lite 2.3.0", + "futures-lite 2.4.0", "gloo-timers 0.3.0", "kv-log-macro", "log", @@ -843,7 +843,7 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.85", ] [[package]] @@ -873,7 +873,7 @@ checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.85", ] [[package]] @@ -914,7 +914,7 @@ checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.85", ] [[package]] @@ -931,7 +931,7 @@ checksum = "504e3947307ac8326a5437504c517c4b56716c9d98fac0028c2acc7ca47d70ae" dependencies = [ "async-trait", "axum-core", - "bytes 1.7.2", + "bytes 1.8.0", "futures-util", "http 1.1.0", "http-body 1.0.1", @@ -964,7 +964,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09f2bd6146b97ae3359fa0cc6d6b376d9539582c7b4220f041a33ec24c226199" dependencies = [ "async-trait", - "bytes 1.7.2", + "bytes 1.8.0", "futures-util", "http 1.1.0", "http-body 1.0.1", @@ -1082,7 +1082,7 @@ dependencies = [ "regex", "rustc-hash 1.1.0", "shlex", - "syn 2.0.79", + "syn 2.0.85", ] [[package]] @@ -1171,7 +1171,7 @@ dependencies = [ "async-channel 2.3.1", "async-task", "futures-io", - "futures-lite 2.3.0", + "futures-lite 2.4.0", "piper", ] @@ -1239,7 +1239,7 @@ checksum = "bcfcc3cd946cb52f0bbfdbbcfa2f4e24f75ebb6c0e1002f7c25904fada18b9ec" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.85", ] [[package]] @@ -1256,9 +1256,9 @@ checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38" [[package]] name = "bytes" -version = "1.7.2" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "428d9aa8fbc0670b7b8d6030a7fadd0f86151cae55e4dbbece15f3780a3dfaf3" +checksum = "9ac0150caa2ae65ca5bd83f25c7de183dea78d4d366469f148435e2acfbad0da" dependencies = [ "serde", ] @@ -1318,9 +1318,9 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" [[package]] name = "cc" -version = "1.1.30" +version = "1.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b16803a61b81d9eabb7eae2588776c4c1e584b738ede45fdbb4c972cec1e9945" +checksum = "c2e7962b54006dcfcc61cb72735f4d89bb97061dd6a7ed882ec6b8ee53714c6f" dependencies = [ "jobserver", "libc", @@ -1448,7 +1448,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.85", ] [[package]] @@ -1511,9 +1511,9 @@ dependencies = [ [[package]] name = "colorchoice" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0" +checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" [[package]] name = "concurrent-queue" @@ -1824,7 +1824,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.85", ] [[package]] @@ -1980,7 +1980,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version 0.4.1", - "syn 2.0.79", + "syn 2.0.85", ] [[package]] @@ -2000,7 +2000,7 @@ checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.85", "unicode-xid", ] @@ -2144,9 +2144,9 @@ checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" [[package]] name = "encoding_rs" -version = "0.8.34" +version = "0.8.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" +checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" dependencies = [ "cfg-if", ] @@ -2158,7 +2158,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a3d8dc56e02f954cac8eb489772c552c473346fc34f67412bb6244fd647f7e4" dependencies = [ "base64 0.21.7", - "bytes 1.7.2", + "bytes 1.8.0", "hex", "k256", "log", @@ -2187,7 +2187,7 @@ checksum = "f282cfdfe92516eb26c2af8589c274c7c17681f5ecc03c18255fe741c6aa64eb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.85", ] [[package]] @@ -2338,7 +2338,7 @@ dependencies = [ "regex", "serde", "serde_json", - "syn 2.0.79", + "syn 2.0.85", "toml", "walkdir", ] @@ -2356,7 +2356,7 @@ dependencies = [ "proc-macro2", "quote", "serde_json", - "syn 2.0.79", + "syn 2.0.85", ] [[package]] @@ -2366,7 +2366,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "82d80cc6ad30b14a48ab786523af33b37f28a8623fc06afd55324816ef18fb1f" dependencies = [ "arrayvec", - "bytes 1.7.2", + "bytes 1.8.0", "cargo_metadata", "chrono", "const-hex", @@ -2382,7 +2382,7 @@ dependencies = [ "serde", "serde_json", "strum", - "syn 2.0.79", + "syn 2.0.85", "tempfile", "thiserror", "tiny-keccak", @@ -2424,7 +2424,7 @@ dependencies = [ "async-trait", "auto_impl", "base64 0.21.7", - "bytes 1.7.2", + "bytes 1.8.0", "const-hex", "enr", "ethers-core", @@ -2530,7 +2530,7 @@ checksum = "139834ddba373bbdd213dffe02c8d110508dcf1726c2be27e8d1f7d7e1856418" dependencies = [ "arrayvec", "auto_impl", - "bytes 1.7.2", + "bytes 1.8.0", ] [[package]] @@ -2715,9 +2715,9 @@ dependencies = [ [[package]] name = "futures-lite" -version = "2.3.0" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5" +checksum = "3f1fa2f9765705486b33fd2acf1577f8ec449c2ba1f318ae5447697b7c08d210" dependencies = [ "fastrand 2.1.1", "futures-core", @@ -2744,7 +2744,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.85", ] [[package]] @@ -2960,7 +2960,7 @@ version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" dependencies = [ - "bytes 1.7.2", + "bytes 1.8.0", "fnv", "futures-core", "futures-sink", @@ -2980,7 +2980,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "524e8ac6999421f49a846c2d4411f337e53497d8ec55d67753beffa43c5d9205" dependencies = [ "atomic-waker", - "bytes 1.7.2", + "bytes 1.8.0", "fnv", "futures-core", "futures-sink", @@ -3131,7 +3131,7 @@ version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" dependencies = [ - "bytes 1.7.2", + "bytes 1.8.0", "fnv", "itoa", ] @@ -3142,7 +3142,7 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" dependencies = [ - "bytes 1.7.2", + "bytes 1.8.0", "fnv", "itoa", ] @@ -3153,7 +3153,7 @@ version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" dependencies = [ - "bytes 1.7.2", + "bytes 1.8.0", "http 0.2.12", "pin-project-lite", ] @@ -3164,7 +3164,7 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ - "bytes 1.7.2", + "bytes 1.8.0", "http 1.1.0", ] @@ -3174,7 +3174,7 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" dependencies = [ - "bytes 1.7.2", + "bytes 1.8.0", "futures-util", "http 1.1.0", "http-body 1.0.1", @@ -3235,7 +3235,7 @@ version = "0.14.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8c08302e8fa335b151b788c775ff56e7a03ae64ff85c548ee820fecb70356e85" dependencies = [ - "bytes 1.7.2", + "bytes 1.8.0", "futures-channel", "futures-core", "futures-util", @@ -3259,7 +3259,7 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbbff0a806a4728c99295b254c8838933b5b082d75e3cb70c8dab21fdfbcfa9a" dependencies = [ - "bytes 1.7.2", + "bytes 1.8.0", "futures-channel", "futures-util", "h2 0.4.6", @@ -3284,7 +3284,7 @@ dependencies = [ "http 1.1.0", "hyper 1.5.0", "hyper-util", - "rustls 0.23.15", + "rustls 0.23.16", "rustls-pki-types", "tokio", "tokio-rustls", @@ -3311,7 +3311,7 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" dependencies = [ - "bytes 1.7.2", + "bytes 1.8.0", "http-body-util", "hyper 1.5.0", "hyper-util", @@ -3323,11 +3323,11 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.9" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41296eb09f183ac68eec06e03cdbea2e759633d4067b2f6552fc2e009bcad08b" +checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" dependencies = [ - "bytes 1.7.2", + "bytes 1.8.0", "futures-channel", "futures-util", "http 1.1.0", @@ -3659,9 +3659,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.159" +version = "0.2.161" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "561d97a539a36e26a9a5fad1ea11a3039a67714694aaa379433e580854bc3dc5" +checksum = "8e9489c2807c139ffd9c1794f4af0ebe86a828db53ecdc7fea2111d0fed085d1" [[package]] name = "libgit2-sys" @@ -3687,9 +3687,9 @@ dependencies = [ [[package]] name = "libm" -version = "0.2.8" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" +checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" [[package]] name = "libnghttp2-sys" @@ -4054,7 +4054,7 @@ dependencies = [ "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.85", ] [[package]] @@ -4107,7 +4107,7 @@ checksum = "786393f80485445794f6043fd3138854dd109cc6c4bd1a6383db304c9ce9b9ce" dependencies = [ "arrayvec", "auto_impl", - "bytes 1.7.2", + "bytes 1.8.0", "ethereum-types", "open-fastrlp-derive", ] @@ -4118,7 +4118,7 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "003b2be5c6c53c1cfeb0a238b8a1c3915cd410feb684457a36c10038f764bb1c" dependencies = [ - "bytes 1.7.2", + "bytes 1.8.0", "proc-macro2", "quote", "syn 1.0.109", @@ -4126,9 +4126,9 @@ dependencies = [ [[package]] name = "openssl" -version = "0.10.67" +version = "0.10.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b8cefcf97f41316955f9294cd61f639bdcfa9f2f230faac6cb896aa8ab64704" +checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" dependencies = [ "bitflags 2.6.0", "cfg-if", @@ -4147,7 +4147,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.85", ] [[package]] @@ -4577,29 +4577,29 @@ dependencies = [ [[package]] name = "pin-project" -version = "1.1.6" +version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf123a161dde1e524adf36f90bc5d8d3462824a9c43553ad07a8183161189ec" +checksum = "be57f64e946e500c8ee36ef6331845d40a93055567ec57e8fae13efd33759b95" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.6" +version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4502d8515ca9f32f1fb543d987f63d95a14934883db45bdb48060b6b69257f8" +checksum = "3c0f5fad0874fc7abcd4d750e76917eaebbecaa2c20bde22e1dbeeba8beb758c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.85", ] [[package]] name = "pin-project-lite" -version = "0.2.14" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" +checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" [[package]] name = "pin-utils" @@ -4717,12 +4717,12 @@ dependencies = [ [[package]] name = "prettyplease" -version = "0.2.22" +version = "0.2.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479cf940fbbb3426c32c5d5176f62ad57549a0bb84773423ba8be9d089f5faba" +checksum = "64d1ec885c64d0457d564db4ec299b2dae3f9c02808b8ad9c3a089c591b18033" dependencies = [ "proc-macro2", - "syn 2.0.79", + "syn 2.0.85", ] [[package]] @@ -4815,7 +4815,7 @@ dependencies = [ "proc-macro-error-attr2", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.85", ] [[package]] @@ -4826,9 +4826,9 @@ checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" [[package]] name = "proc-macro2" -version = "1.0.88" +version = "1.0.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c3a7fc5db1e57d5a779a352c8cdb57b29aa4c40cc69c3a68a7fedc815fbf2f9" +checksum = "f139b0662de085916d1fb67d2b4169d1addddda1919e696f3252b740b629986e" dependencies = [ "unicode-ident", ] @@ -4859,7 +4859,7 @@ version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7b0487d90e047de87f984913713b85c601c05609aad5b0df4b4573fbf69aa13f" dependencies = [ - "bytes 1.7.2", + "bytes 1.8.0", "prost-derive", ] @@ -4869,7 +4869,7 @@ version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c1318b19085f08681016926435853bbf7858f9c082d0999b80550ff5d9abe15" dependencies = [ - "bytes 1.7.2", + "bytes 1.8.0", "heck", "itertools 0.13.0", "log", @@ -4880,7 +4880,7 @@ dependencies = [ "prost", "prost-types", "regex", - "syn 2.0.79", + "syn 2.0.85", "tempfile", ] @@ -4894,7 +4894,7 @@ dependencies = [ "itertools 0.13.0", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.85", ] [[package]] @@ -4918,12 +4918,12 @@ version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8c7c5fdde3cdae7203427dc4f0a68fe0ed09833edc525a03456b153b79828684" dependencies = [ - "bytes 1.7.2", + "bytes 1.8.0", "pin-project-lite", "quinn-proto", "quinn-udp", "rustc-hash 2.0.0", - "rustls 0.23.15", + "rustls 0.23.16", "socket2", "thiserror", "tokio", @@ -4936,11 +4936,11 @@ version = "0.11.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fadfaed2cd7f389d0161bb73eeb07b7b78f8691047a6f3e73caaeae55310a4a6" dependencies = [ - "bytes 1.7.2", + "bytes 1.8.0", "rand 0.8.5", "ring 0.17.8", "rustc-hash 2.0.0", - "rustls 0.23.15", + "rustls 0.23.16", "slab", "thiserror", "tinyvec", @@ -4949,10 +4949,11 @@ dependencies = [ [[package]] name = "quinn-udp" -version = "0.5.5" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fe68c2e9e1a1234e218683dbdf9f9dfcb094113c5ac2b938dfcb9bab4c4140b" +checksum = "e346e016eacfff12233c243718197ca12f148c84e1e84268a896699b41c71780" dependencies = [ + "cfg_aliases", "libc", "once_cell", "socket2", @@ -5107,9 +5108,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.11.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38200e5ee88914975b69f657f0801b6f6dccafd44fd9326302a4aaeecfacb1d8" +checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" dependencies = [ "aho-corasick", "memchr", @@ -5156,7 +5157,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" dependencies = [ "base64 0.21.7", - "bytes 1.7.2", + "bytes 1.8.0", "encoding_rs", "futures-core", "futures-util", @@ -5187,12 +5188,12 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.12.8" +version = "0.12.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f713147fbe92361e52392c73b8c9e48c04c6625bce969ef54dc901e58e042a7b" +checksum = "a77c62af46e79de0a562e1a9849205ffcb7fc1238876e9bd743357570e04046f" dependencies = [ "base64 0.22.1", - "bytes 1.7.2", + "bytes 1.8.0", "encoding_rs", "futures-core", "futures-util", @@ -5213,7 +5214,7 @@ dependencies = [ "percent-encoding", "pin-project-lite", "quinn", - "rustls 0.23.15", + "rustls 0.23.16", "rustls-pemfile", "rustls-pki-types", "serde", @@ -5244,7 +5245,7 @@ dependencies = [ "anyhow", "async-trait", "http 1.1.0", - "reqwest 0.12.8", + "reqwest 0.12.9", "serde", "thiserror", "tower-service", @@ -5305,7 +5306,7 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" dependencies = [ - "bytes 1.7.2", + "bytes 1.8.0", "rlp-derive", "rustc-hex", ] @@ -5353,7 +5354,7 @@ dependencies = [ "alloy-rlp", "ark-ff 0.3.0", "ark-ff 0.4.2", - "bytes 1.7.2", + "bytes 1.8.0", "fastrlp", "num-bigint 0.4.6", "num-traits", @@ -5427,9 +5428,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.37" +version = "0.38.38" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811" +checksum = "aa260229e6538e52293eeb577aabd09945a09d6d9cc0fc550ed7529056c2e32a" dependencies = [ "bitflags 2.6.0", "errno", @@ -5453,9 +5454,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.15" +version = "0.23.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fbb44d7acc4e873d613422379f69f237a1b141928c02f6bc6ccfddddc2d7993" +checksum = "eee87ff5d9b36712a58574e12e9f0ea80f915a5b0ac518d322b24a465617925e" dependencies = [ "log", "once_cell", @@ -5549,33 +5550,33 @@ dependencies = [ [[package]] name = "scale-info" -version = "2.11.3" +version = "2.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eca070c12893629e2cc820a9761bedf6ce1dcddc9852984d1dc734b8bd9bd024" +checksum = "1aa7ffc1c0ef49b0452c6e2986abf2b07743320641ffd5fc63d552458e3b779b" dependencies = [ "cfg-if", - "derive_more 0.99.18", + "derive_more 1.0.0", "parity-scale-codec", "scale-info-derive", ] [[package]] name = "scale-info-derive" -version = "2.11.3" +version = "2.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d35494501194174bda522a32605929eefc9ecf7e0a326c26db1fdd85881eb62" +checksum = "46385cc24172cf615450267463f937c10072516359b3ff1cb24228a4a08bf951" dependencies = [ "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.85", ] [[package]] name = "scc" -version = "2.2.2" +version = "2.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2c1f7fc6deb21665a9060dfc7d271be784669295a31babdcd4dd2c79ae8cbfb" +checksum = "d8d25269dd3a12467afe2e510f69fb0b46b698e5afb296b59f2145259deaf8e8" dependencies = [ "sdd", ] @@ -5612,7 +5613,7 @@ checksum = "7f81c2fde025af7e69b1d1420531c8a8811ca898919db177141a85313b1cb932" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.85", ] [[package]] @@ -5736,29 +5737,29 @@ checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" [[package]] name = "serde" -version = "1.0.210" +version = "1.0.214" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a" +checksum = "f55c3193aca71c12ad7890f1785d2b73e1b9f63a0bbc353c08ef26fe03fc56b5" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.210" +version = "1.0.214" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f" +checksum = "de523f781f095e28fa605cdce0f8307e451cc0fd14e2eb4cd2e98a355b147766" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.85", ] [[package]] name = "serde_json" -version = "1.0.128" +version = "1.0.132" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ff5456707a1de34e7e37f2a6fd3d3f808c318259cbd01ab6377795054b483d8" +checksum = "d726bfaff4b320266d395898905d0eba0345aae23b54aee3a737e260fd46db03" dependencies = [ "itoa", "memchr", @@ -5852,7 +5853,7 @@ checksum = "82fe9db325bcef1fbcde82e078a5cc4efdf787e96b3b9cf45b50b529f2083d67" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.85", ] [[package]] @@ -6075,7 +6076,7 @@ dependencies = [ "prettytable-rs", "rand 0.8.5", "regex", - "reqwest 0.12.8", + "reqwest 0.12.9", "rustc-demangle", "serde_json", "sp1-build", @@ -6224,7 +6225,7 @@ dependencies = [ "anyhow", "bincode", "clap", - "reqwest 0.12.8", + "reqwest 0.12.9", "serde", "serde_json", "slack-rust-rs", @@ -6252,9 +6253,9 @@ dependencies = [ [[package]] name = "sp1-lib" -version = "3.0.0" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c372b16988e765af85ccf958b18b26d89c05886f2592d313a285415dcc769cb" +checksum = "14deb700469a37ec075bcf88dac3815b026dd9c4b9cb175980826f1fbb2e4e80" dependencies = [ "bincode", "serde", @@ -6467,7 +6468,7 @@ dependencies = [ name = "sp1-sdk" version = "3.0.0" dependencies = [ - "alloy-primitives 0.8.8", + "alloy-primitives 0.8.10", "alloy-signer", "alloy-signer-local", "alloy-sol-types 0.7.7", @@ -6488,7 +6489,7 @@ dependencies = [ "p3-field", "p3-fri", "prost", - "reqwest 0.12.8", + "reqwest 0.12.9", "reqwest-middleware", "serde", "sp1-core-executor", @@ -6697,7 +6698,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.79", + "syn 2.0.85", ] [[package]] @@ -6713,7 +6714,7 @@ dependencies = [ "num-bigint 0.4.6", "rand 0.8.5", "rustc-hex", - "sp1-lib 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp1-lib 3.1.0", ] [[package]] @@ -6758,9 +6759,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.79" +version = "2.0.85" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89132cd0bf050864e1d38dc3bbc07a0eb8e7530af26344d3d2bbbef83499f590" +checksum = "5023162dfcd14ef8f32034d8bcd4cc5ddc61ef7a247c024a33e24e1f24d21b56" dependencies = [ "proc-macro2", "quote", @@ -6776,19 +6777,19 @@ dependencies = [ "paste", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.85", ] [[package]] name = "syn-solidity" -version = "0.8.8" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebfc1bfd06acc78f16d8fd3ef846bc222ee7002468d10a7dce8d703d6eab89a3" +checksum = "16320d4a2021ba1a32470b3759676114a918885e9800e68ad60f2c67969fba62" dependencies = [ "paste", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.85", ] [[package]] @@ -6912,22 +6913,22 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.64" +version = "1.0.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d50af8abc119fb8bb6dbabcfa89656f46f84aa0ac7688088608076ad2b459a84" +checksum = "5d11abd9594d9b38965ef50805c5e469ca9cc6f197f883f717e0269a3057b3d5" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.64" +version = "1.0.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08904e7672f5eb876eaaf87e0ce17857500934f4981c4a0ab2b4aa98baac7fc3" +checksum = "ae71770322cbd277e69d762a16c444af02aa0575ac0d174f0b9562d3b37f8602" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.85", ] [[package]] @@ -7076,12 +7077,12 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.40.0" +version = "1.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2b070231665d27ad9ec9b8df639893f46727666c6767db40317fbe920a5d998" +checksum = "145f3413504347a2be84393cc8a7d2fb4d863b375909ea59f2158261aa258bbb" dependencies = [ "backtrace", - "bytes 1.7.2", + "bytes 1.8.0", "libc", "mio", "parking_lot", @@ -7100,7 +7101,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.85", ] [[package]] @@ -7119,7 +7120,7 @@ version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" dependencies = [ - "rustls 0.23.15", + "rustls 0.23.16", "rustls-pki-types", "tokio", ] @@ -7141,7 +7142,7 @@ version = "0.7.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a" dependencies = [ - "bytes 1.7.2", + "bytes 1.8.0", "futures-core", "futures-sink", "pin-project-lite", @@ -7203,7 +7204,7 @@ dependencies = [ "async-trait", "axum", "base64 0.22.1", - "bytes 1.7.2", + "bytes 1.8.0", "h2 0.4.6", "http 1.1.0", "http-body 1.0.1", @@ -7294,7 +7295,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.85", ] [[package]] @@ -7373,7 +7374,7 @@ checksum = "30ee6ab729cd4cf0fd55218530c4522ed30b7b6081752839b68fcec8d0960788" dependencies = [ "base64 0.13.1", "byteorder", - "bytes 1.7.2", + "bytes 1.8.0", "http 0.2.12", "httparse", "log", @@ -7406,7 +7407,7 @@ dependencies = [ "http-body-util", "hyper 1.5.0", "prost", - "reqwest 0.12.8", + "reqwest 0.12.9", "serde", "serde_json", "thiserror", @@ -7447,12 +7448,9 @@ checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" [[package]] name = "unicase" -version = "2.7.0" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89" -dependencies = [ - "version_check", -] +checksum = "7e51b68083f157f853b6379db119d1c1be0e6e4dec98101079dec41f6f5cf6df" [[package]] name = "unicode-bidi" @@ -7557,9 +7555,9 @@ checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" [[package]] name = "value-bag" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a84c137d37ab0142f0f2ddfe332651fdbf252e7b7dbb4e67b6c1f1b2e925101" +checksum = "3ef4c4aa54d5d05a279399bfa921ec387b7aba77caf7a682ae8d86785b8fdad2" [[package]] name = "vcpkg" @@ -7663,7 +7661,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.85", "wasm-bindgen-shared", ] @@ -7697,7 +7695,7 @@ checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.85", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -7710,9 +7708,9 @@ checksum = "65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d" [[package]] name = "wasm-streams" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e072d4e72f700fb3443d8fe94a39315df013eef1104903cdb0a2abd322bbecd" +checksum = "15053d8d85c7eccdbefef60f06769760a563c7f0a9d6902a13d35c7800b0ad65" dependencies = [ "futures-util", "js-sys", @@ -8077,7 +8075,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.85", ] [[package]] @@ -8097,7 +8095,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.79", + "syn 2.0.85", ] [[package]] From 2e10b1d67a929ed56b676f57642010781ad80d12 Mon Sep 17 00:00:00 2001 From: Yuwen Zhang Date: Fri, 1 Nov 2024 11:06:46 -0700 Subject: [PATCH 04/14] remove ethers, no default features on reqwest --- Cargo.lock | 924 ++------------------- crates/sdk/Cargo.toml | 8 +- crates/sdk/src/network/auth.rs | 16 +- examples/Cargo.lock | 1392 +++++--------------------------- 4 files changed, 267 insertions(+), 2073 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5b6738acd..726ac5e56 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,16 +2,6 @@ # It is not intended for manual editing. version = 3 -[[package]] -name = "Inflector" -version = "0.11.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" -dependencies = [ - "lazy_static", - "regex", -] - [[package]] name = "addchain" version = "0.2.0" @@ -55,18 +45,7 @@ checksum = "884391ef1066acaa41e766ba8f596341b96e93ce34f9a43e7d24bf0a0eaf0561" dependencies = [ "aes-soft", "aesni", - "cipher 0.2.5", -] - -[[package]] -name = "aes" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" -dependencies = [ - "cfg-if", - "cipher 0.4.4", - "cpufeatures", + "cipher", ] [[package]] @@ -76,9 +55,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5278b5fabbb9bd46e24aa69b2fdea62c99088e0a950a9be40e3e0101298f88da" dependencies = [ "aead", - "aes 0.6.0", - "cipher 0.2.5", - "ctr 0.6.0", + "aes", + "cipher", + "ctr", "ghash", "subtle", ] @@ -89,7 +68,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be14c7498ea50828a38d0e24a765ed2effe92a705885b57d029cd67d45744072" dependencies = [ - "cipher 0.2.5", + "cipher", "opaque-debug", ] @@ -99,7 +78,7 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea2e11f5e94c2f7d386164cc2aa1f97823fed6f259e486940a71c174dd01b0ce" dependencies = [ - "cipher 0.2.5", + "cipher", "opaque-debug", ] @@ -813,7 +792,7 @@ dependencies = [ "futures-core", "futures-io", "futures-lite 2.4.0", - "gloo-timers 0.3.0", + "gloo-timers", "kv-log-macro", "log", "memchr", @@ -889,17 +868,6 @@ dependencies = [ "tungstenite", ] -[[package]] -name = "async_io_stream" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6d7b9decdf35d8908a7e3ef02f64c5e9b1695e230154c0e8de3969142d9b94c" -dependencies = [ - "futures", - "pharos", - "rustc_version 0.4.1", -] - [[package]] name = "atomic-waker" version = "1.1.2" @@ -934,9 +902,9 @@ dependencies = [ "bytes 1.8.0", "futures-util", "http 1.1.0", - "http-body 1.0.1", + "http-body", "http-body-util", - "hyper 1.5.0", + "hyper", "hyper-util", "itoa", "matchit", @@ -967,7 +935,7 @@ dependencies = [ "bytes 1.8.0", "futures-util", "http 1.1.0", - "http-body 1.0.1", + "http-body", "http-body-util", "mime", "pin-project-lite", @@ -1032,12 +1000,6 @@ version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" -[[package]] -name = "base64" -version = "0.21.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" - [[package]] name = "base64" version = "0.22.1" @@ -1050,12 +1012,6 @@ version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" -[[package]] -name = "bech32" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445" - [[package]] name = "bincode" version = "1.3.3" @@ -1071,7 +1027,7 @@ version = "0.70.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f49d8fed880d473ea71efb9bf597651e77201bdd4893efe54c9e5d65ae04ce6f" dependencies = [ - "bitflags 2.6.0", + "bitflags", "cexpr", "clang-sys", "itertools 0.13.0", @@ -1100,12 +1056,6 @@ version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - [[package]] name = "bitflags" version = "2.6.0" @@ -1200,16 +1150,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "bs58" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" -dependencies = [ - "sha2 0.10.8", - "tinyvec", -] - [[package]] name = "bumpalo" version = "3.16.0" @@ -1396,16 +1336,6 @@ dependencies = [ "generic-array 0.14.7", ] -[[package]] -name = "cipher" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" -dependencies = [ - "crypto-common", - "inout", -] - [[package]] name = "clang-sys" version = "1.8.1" @@ -1457,58 +1387,6 @@ version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" -[[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 0.12.1", - "k256", - "serde", - "sha2 0.10.8", - "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 0.12.1", - "once_cell", - "pbkdf2 0.12.2", - "rand 0.8.5", - "sha2 0.10.8", - "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 0.14.7", - "hex", - "ripemd", - "serde", - "serde_derive", - "sha2 0.10.8", - "sha3", - "thiserror", -] - [[package]] name = "colorchoice" version = "1.0.3" @@ -1748,16 +1626,7 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fb4a30d54f7443bf3d6191dcd486aca19e67cb3c49fa7a06a319966346707e7f" dependencies = [ - "cipher 0.2.5", -] - -[[package]] -name = "ctr" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" -dependencies = [ - "cipher 0.4.4", + "cipher", ] [[package]] @@ -2151,24 +2020,6 @@ dependencies = [ "cfg-if", ] -[[package]] -name = "enr" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a3d8dc56e02f954cac8eb489772c552c473346fc34f67412bb6244fd647f7e4" -dependencies = [ - "base64 0.21.7", - "bytes 1.8.0", - "hex", - "k256", - "log", - "rand 0.8.5", - "rlp", - "serde", - "sha3", - "zeroize", -] - [[package]] name = "enum-map" version = "2.7.3" @@ -2206,270 +2057,6 @@ dependencies = [ "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 0.8.4", - "ctr 0.9.2", - "digest 0.10.7", - "hex", - "hmac 0.12.1", - "pbkdf2 0.11.0", - "rand 0.8.5", - "scrypt", - "serde", - "serde_json", - "sha2 0.10.8", - "sha3", - "thiserror", - "uuid", -] - -[[package]] -name = "ethabi" -version = "18.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7413c5f74cc903ea37386a8965a936cbeb334bd270862fdece542c1b2dcbc898" -dependencies = [ - "ethereum-types", - "hex", - "once_cell", - "regex", - "serde", - "serde_json", - "sha3", - "thiserror", - "uint", -] - -[[package]] -name = "ethbloom" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c22d4b5885b6aa2fe5e8b9329fb8d232bf739e434e6b87347c63bdd00c120f60" -dependencies = [ - "crunchy", - "fixed-hash", - "impl-codec", - "impl-rlp", - "impl-serde", - "scale-info", - "tiny-keccak", -] - -[[package]] -name = "ethereum-types" -version = "0.14.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02d215cbf040552efcbe99a38372fe80ab9d00268e20012b79fcd0f073edd8ee" -dependencies = [ - "ethbloom", - "fixed-hash", - "impl-codec", - "impl-rlp", - "impl-serde", - "primitive-types", - "scale-info", - "uint", -] - -[[package]] -name = "ethers" -version = "2.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "816841ea989f0c69e459af1cf23a6b0033b19a55424a1ea3a30099becdb8dec0" -dependencies = [ - "ethers-addressbook", - "ethers-contract", - "ethers-core", - "ethers-middleware", - "ethers-providers", - "ethers-signers", -] - -[[package]] -name = "ethers-addressbook" -version = "2.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5495afd16b4faa556c3bba1f21b98b4983e53c1755022377051a975c3b021759" -dependencies = [ - "ethers-core", - "once_cell", - "serde", - "serde_json", -] - -[[package]] -name = "ethers-contract" -version = "2.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fceafa3578c836eeb874af87abacfb041f92b4da0a78a5edd042564b8ecdaaa" -dependencies = [ - "const-hex", - "ethers-contract-abigen", - "ethers-contract-derive", - "ethers-core", - "ethers-providers", - "futures-util", - "once_cell", - "pin-project", - "serde", - "serde_json", - "thiserror", -] - -[[package]] -name = "ethers-contract-abigen" -version = "2.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04ba01fbc2331a38c429eb95d4a570166781f14290ef9fdb144278a90b5a739b" -dependencies = [ - "Inflector", - "const-hex", - "dunce", - "ethers-core", - "eyre", - "prettyplease", - "proc-macro2", - "quote", - "regex", - "serde", - "serde_json", - "syn 2.0.85", - "toml", - "walkdir", -] - -[[package]] -name = "ethers-contract-derive" -version = "2.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87689dcabc0051cde10caaade298f9e9093d65f6125c14575db3fd8c669a168f" -dependencies = [ - "Inflector", - "const-hex", - "ethers-contract-abigen", - "ethers-core", - "proc-macro2", - "quote", - "serde_json", - "syn 2.0.85", -] - -[[package]] -name = "ethers-core" -version = "2.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82d80cc6ad30b14a48ab786523af33b37f28a8623fc06afd55324816ef18fb1f" -dependencies = [ - "arrayvec", - "bytes 1.8.0", - "cargo_metadata", - "chrono", - "const-hex", - "elliptic-curve", - "ethabi", - "generic-array 0.14.7", - "k256", - "num_enum 0.7.3", - "once_cell", - "open-fastrlp", - "rand 0.8.5", - "rlp", - "serde", - "serde_json", - "strum", - "syn 2.0.85", - "tempfile", - "thiserror", - "tiny-keccak", - "unicode-xid", -] - -[[package]] -name = "ethers-middleware" -version = "2.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48f9fdf09aec667c099909d91908d5eaf9be1bd0e2500ba4172c1d28bfaa43de" -dependencies = [ - "async-trait", - "auto_impl", - "ethers-contract", - "ethers-core", - "ethers-providers", - "ethers-signers", - "futures-channel", - "futures-locks", - "futures-util", - "instant", - "reqwest 0.11.27", - "serde", - "serde_json", - "thiserror", - "tokio", - "tracing", - "tracing-futures", - "url", -] - -[[package]] -name = "ethers-providers" -version = "2.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6434c9a33891f1effc9c75472e12666db2fa5a0fec4b29af6221680a6fe83ab2" -dependencies = [ - "async-trait", - "auto_impl", - "base64 0.21.7", - "bytes 1.8.0", - "const-hex", - "enr", - "ethers-core", - "futures-core", - "futures-timer", - "futures-util", - "hashers", - "http 0.2.12", - "instant", - "jsonwebtoken", - "once_cell", - "pin-project", - "reqwest 0.11.27", - "serde", - "serde_json", - "thiserror", - "tokio", - "tracing", - "tracing-futures", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "ws_stream_wasm", -] - -[[package]] -name = "ethers-signers" -version = "2.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "228875491c782ad851773b652dd8ecac62cda8571d3bc32a5853644dd26766c2" -dependencies = [ - "async-trait", - "coins-bip32", - "coins-bip39", - "const-hex", - "elliptic-curve", - "eth-keystore", - "ethers-core", - "rand 0.8.5", - "sha2 0.10.8", - "thiserror", - "tracing", -] - [[package]] name = "event-listener" version = "2.5.3" @@ -2726,16 +2313,6 @@ dependencies = [ "pin-project-lite", ] -[[package]] -name = "futures-locks" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45ec6fe3675af967e67c5536c0b9d44e34e6c52f86bedc4ea49c5317b8e94d06" -dependencies = [ - "futures-channel", - "futures-task", -] - [[package]] name = "futures-macro" version = "0.3.31" @@ -2759,16 +2336,6 @@ version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" -[[package]] -name = "futures-timer" -version = "3.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" -dependencies = [ - "gloo-timers 0.2.6", - "send_wrapper 0.4.0", -] - [[package]] name = "futures-util" version = "0.3.31" @@ -2793,15 +2360,6 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42012b0f064e01aa58b545fe3727f90f7dd4020f4a3ea735b50344965f5a57e9" -[[package]] -name = "fxhash" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" -dependencies = [ - "byteorder", -] - [[package]] name = "gcd" version = "2.3.0" @@ -2873,7 +2431,7 @@ version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b903b73e45dc0c6c596f2d37eccece7c1c8bb6e4407b001096387c63d0d93724" dependencies = [ - "bitflags 2.6.0", + "bitflags", "libc", "libgit2-sys", "log", @@ -2886,18 +2444,6 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" -[[package]] -name = "gloo-timers" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c" -dependencies = [ - "futures-channel", - "futures-core", - "js-sys", - "wasm-bindgen", -] - [[package]] name = "gloo-timers" version = "0.3.0" @@ -2954,25 +2500,6 @@ dependencies = [ "subtle", ] -[[package]] -name = "h2" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" -dependencies = [ - "bytes 1.8.0", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http 0.2.12", - "indexmap 2.6.0", - "slab", - "tokio", - "tokio-util", - "tracing", -] - [[package]] name = "h2" version = "0.4.6" @@ -3054,15 +2581,6 @@ dependencies = [ "serde", ] -[[package]] -name = "hashers" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2bca93b15ea5a746f220e56587f71e73c6165eab783df9e26590069953e3c30" -dependencies = [ - "fxhash", -] - [[package]] name = "heck" version = "0.5.0" @@ -3147,17 +2665,6 @@ dependencies = [ "itoa", ] -[[package]] -name = "http-body" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" -dependencies = [ - "bytes 1.8.0", - "http 0.2.12", - "pin-project-lite", -] - [[package]] name = "http-body" version = "1.0.1" @@ -3177,7 +2684,7 @@ dependencies = [ "bytes 1.8.0", "futures-util", "http 1.1.0", - "http-body 1.0.1", + "http-body", "pin-project-lite", ] @@ -3229,30 +2736,6 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" -[[package]] -name = "hyper" -version = "0.14.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c08302e8fa335b151b788c775ff56e7a03ae64ff85c548ee820fecb70356e85" -dependencies = [ - "bytes 1.8.0", - "futures-channel", - "futures-core", - "futures-util", - "h2 0.3.26", - "http 0.2.12", - "http-body 0.4.6", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "socket2", - "tokio", - "tower-service", - "tracing", - "want", -] - [[package]] name = "hyper" version = "1.5.0" @@ -3262,9 +2745,9 @@ dependencies = [ "bytes 1.8.0", "futures-channel", "futures-util", - "h2 0.4.6", + "h2", "http 1.1.0", - "http-body 1.0.1", + "http-body", "httparse", "httpdate", "itoa", @@ -3282,7 +2765,7 @@ checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333" dependencies = [ "futures-util", "http 1.1.0", - "hyper 1.5.0", + "hyper", "hyper-util", "rustls 0.23.16", "rustls-pki-types", @@ -3298,7 +2781,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3203a961e5c83b6f5498933e78b6b263e208c197b63e9c6c53cc82ffd3f63793" dependencies = [ - "hyper 1.5.0", + "hyper", "hyper-util", "pin-project-lite", "tokio", @@ -3313,7 +2796,7 @@ checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" dependencies = [ "bytes 1.8.0", "http-body-util", - "hyper 1.5.0", + "hyper", "hyper-util", "native-tls", "tokio", @@ -3331,8 +2814,8 @@ dependencies = [ "futures-channel", "futures-util", "http 1.1.0", - "http-body 1.0.1", - "hyper 1.5.0", + "http-body", + "hyper", "pin-project-lite", "socket2", "tokio", @@ -3388,24 +2871,6 @@ dependencies = [ "parity-scale-codec", ] -[[package]] -name = "impl-rlp" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f28220f89297a075ddc7245cd538076ee98b01f2a9c23a53a4f1105d5a322808" -dependencies = [ - "rlp", -] - -[[package]] -name = "impl-serde" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc88fc67028ae3db0c853baa36269d398d5f45b6982f95549ff5def78c935cd" -dependencies = [ - "serde", -] - [[package]] name = "impl-trait-for-tuples" version = "0.2.2" @@ -3463,15 +2928,6 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "64e9829a50b42bb782c1df523f78d332fe371b10c661e78b7a3c34b0198e9fac" -[[package]] -name = "inout" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" -dependencies = [ - "generic-array 0.14.7", -] - [[package]] name = "instant" version = "0.1.13" @@ -3578,20 +3034,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "jsonwebtoken" -version = "8.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378" -dependencies = [ - "base64 0.21.7", - "pem", - "ring 0.16.20", - "serde", - "serde_json", - "simple_asn1", -] - [[package]] name = "jubjub" version = "0.9.0" @@ -3707,7 +3149,7 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "bitflags 2.6.0", + "bitflags", "libc", ] @@ -3856,7 +3298,7 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" dependencies = [ - "bitflags 2.6.0", + "bitflags", "cfg-if", "cfg_aliases", "libc", @@ -4021,16 +3463,7 @@ version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9" dependencies = [ - "num_enum_derive 0.5.11", -] - -[[package]] -name = "num_enum" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" -dependencies = [ - "num_enum_derive 0.7.3", + "num_enum_derive", ] [[package]] @@ -4045,18 +3478,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "num_enum_derive" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" -dependencies = [ - "proc-macro-crate 3.2.0", - "proc-macro2", - "quote", - "syn 2.0.85", -] - [[package]] name = "num_threads" version = "0.1.7" @@ -4099,38 +3520,13 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" -[[package]] -name = "open-fastrlp" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "786393f80485445794f6043fd3138854dd109cc6c4bd1a6383db304c9ce9b9ce" -dependencies = [ - "arrayvec", - "auto_impl", - "bytes 1.8.0", - "ethereum-types", - "open-fastrlp-derive", -] - -[[package]] -name = "open-fastrlp-derive" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "003b2be5c6c53c1cfeb0a238b8a1c3915cd410feb684457a36c10038f764bb1c" -dependencies = [ - "bytes 1.8.0", - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "openssl" version = "0.10.68" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" dependencies = [ - "bitflags 2.6.0", + "bitflags", "cfg-if", "foreign-types", "libc", @@ -4510,34 +3906,6 @@ 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 0.12.1", -] - -[[package]] -name = "pem" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8" -dependencies = [ - "base64 0.13.1", -] - [[package]] name = "percent-encoding" version = "2.3.1" @@ -4565,16 +3933,6 @@ dependencies = [ "indexmap 2.6.0", ] -[[package]] -name = "pharos" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9567389417feee6ce15dd6527a8a1ecac205ef62c2932bcf3d9f6fc5b78b414" -dependencies = [ - "futures", - "rustc_version 0.4.1", -] - [[package]] name = "pin-project" version = "1.1.7" @@ -4747,9 +4105,6 @@ checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" dependencies = [ "fixed-hash", "impl-codec", - "impl-rlp", - "impl-serde", - "scale-info", "uint", ] @@ -4841,7 +4196,7 @@ checksum = "b4c2511913b88df1637da85cc8d96ec8e43a3f8bb8ccb71ee1ac240d6f3df58d" dependencies = [ "bit-set", "bit-vec", - "bitflags 2.6.0", + "bitflags", "lazy_static", "num-traits", "rand 0.8.5", @@ -5092,7 +4447,7 @@ version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f" dependencies = [ - "bitflags 2.6.0", + "bitflags", ] [[package]] @@ -5150,42 +4505,6 @@ version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" -[[package]] -name = "reqwest" -version = "0.11.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" -dependencies = [ - "base64 0.21.7", - "bytes 1.8.0", - "encoding_rs", - "futures-core", - "futures-util", - "h2 0.3.26", - "http 0.2.12", - "http-body 0.4.6", - "hyper 0.14.31", - "ipnet", - "js-sys", - "log", - "mime", - "once_cell", - "percent-encoding", - "pin-project-lite", - "serde", - "serde_json", - "serde_urlencoded", - "sync_wrapper 0.1.2", - "system-configuration 0.5.1", - "tokio", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "winreg", -] - [[package]] name = "reqwest" version = "0.12.9" @@ -5197,11 +4516,11 @@ dependencies = [ "encoding_rs", "futures-core", "futures-util", - "h2 0.4.6", + "h2", "http 1.1.0", - "http-body 1.0.1", + "http-body", "http-body-util", - "hyper 1.5.0", + "hyper", "hyper-rustls", "hyper-tls", "hyper-util", @@ -5221,7 +4540,7 @@ dependencies = [ "serde_json", "serde_urlencoded", "sync_wrapper 1.0.1", - "system-configuration 0.6.1", + "system-configuration", "tokio", "tokio-native-tls", "tokio-rustls", @@ -5245,7 +4564,7 @@ dependencies = [ "anyhow", "async-trait", "http 1.1.0", - "reqwest 0.12.9", + "reqwest", "serde", "thiserror", "tower-service", @@ -5291,15 +4610,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "ripemd" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" -dependencies = [ - "digest 0.10.7", -] - [[package]] name = "rlp" version = "0.5.2" @@ -5307,21 +4617,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" dependencies = [ "bytes 1.8.0", - "rlp-derive", "rustc-hex", ] -[[package]] -name = "rlp-derive" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e33d7b2abe0c340d8797fe2907d3f20d3b5ea5908683618bfe80df7f621f672a" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "rrs-succinct" version = "0.1.0" @@ -5329,7 +4627,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3372685893a9f67d18e98e792d690017287fd17379a83d798d958e517d380fa9" dependencies = [ "downcast-rs", - "num_enum 0.5.11", + "num_enum", "paste", ] @@ -5432,7 +4730,7 @@ version = "0.38.38" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa260229e6538e52293eeb577aabd09945a09d6d9cc0fc550ed7529056c2e32a" dependencies = [ - "bitflags 2.6.0", + "bitflags", "errno", "libc", "linux-raw-sys", @@ -5530,15 +4828,6 @@ version = "1.0.18" 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" -dependencies = [ - "cipher 0.4.4", -] - [[package]] name = "same-file" version = "1.0.6" @@ -5616,18 +4905,6 @@ dependencies = [ "syn 2.0.85", ] -[[package]] -name = "scrypt" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f9e24d2b632954ded8ab2ef9fea0a0c769ea56ea98bddbafbad22caeeadf45d" -dependencies = [ - "hmac 0.12.1", - "pbkdf2 0.11.0", - "salsa20", - "sha2 0.10.8", -] - [[package]] name = "sct" version = "0.6.1" @@ -5664,7 +4941,7 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.6.0", + "bitflags", "core-foundation", "core-foundation-sys", "libc", @@ -5723,18 +5000,6 @@ dependencies = [ "pest", ] -[[package]] -name = "send_wrapper" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f638d531eccd6e23b980caf34876660d38e265409d8e99b397ab71eb3612fad0" - -[[package]] -name = "send_wrapper" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" - [[package]] name = "serde" version = "1.0.214" @@ -5788,15 +5053,6 @@ dependencies = [ "thiserror", ] -[[package]] -name = "serde_spanned" -version = "0.6.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" -dependencies = [ - "serde", -] - [[package]] name = "serde_urlencoded" version = "0.7.1" @@ -5960,18 +5216,6 @@ dependencies = [ "rand_core 0.6.4", ] -[[package]] -name = "simple_asn1" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085" -dependencies = [ - "num-bigint 0.4.6", - "num-traits", - "thiserror", - "time 0.3.36", -] - [[package]] name = "size" version = "0.4.1" @@ -6076,7 +5320,7 @@ dependencies = [ "prettytable-rs", "rand 0.8.5", "regex", - "reqwest 0.12.9", + "reqwest", "rustc-demangle", "serde_json", "sp1-build", @@ -6225,7 +5469,7 @@ dependencies = [ "anyhow", "bincode", "clap", - "reqwest 0.12.9", + "reqwest", "serde", "serde_json", "slack-rust-rs", @@ -6478,7 +5722,6 @@ dependencies = [ "bincode", "cfg-if", "dirs", - "ethers", "futures", "hashbrown 0.14.5", "hex", @@ -6489,7 +5732,7 @@ dependencies = [ "p3-field", "p3-fri", "prost", - "reqwest 0.12.9", + "reqwest", "reqwest-middleware", "serde", "sp1-core-executor", @@ -6822,36 +6065,15 @@ dependencies = [ "windows", ] -[[package]] -name = "system-configuration" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" -dependencies = [ - "bitflags 1.3.2", - "core-foundation", - "system-configuration-sys 0.5.0", -] - [[package]] name = "system-configuration" version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ - "bitflags 2.6.0", + "bitflags", "core-foundation", - "system-configuration-sys 0.6.0", -] - -[[package]] -name = "system-configuration-sys" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" -dependencies = [ - "core-foundation-sys", - "libc", + "system-configuration-sys", ] [[package]] @@ -7149,26 +6371,11 @@ dependencies = [ "tokio", ] -[[package]] -name = "toml" -version = "0.8.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" -dependencies = [ - "serde", - "serde_spanned", - "toml_datetime", - "toml_edit 0.22.22", -] - [[package]] name = "toml_datetime" version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" -dependencies = [ - "serde", -] [[package]] name = "toml_edit" @@ -7188,8 +6395,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" dependencies = [ "indexmap 2.6.0", - "serde", - "serde_spanned", "toml_datetime", "winnow 0.6.20", ] @@ -7205,11 +6410,11 @@ dependencies = [ "axum", "base64 0.22.1", "bytes 1.8.0", - "h2 0.4.6", + "h2", "http 1.1.0", - "http-body 1.0.1", + "http-body", "http-body-util", - "hyper 1.5.0", + "hyper", "hyper-timeout", "hyper-util", "percent-encoding", @@ -7405,9 +6610,9 @@ dependencies = [ "futures", "http 1.1.0", "http-body-util", - "hyper 1.5.0", + "hyper", "prost", - "reqwest 0.12.9", + "reqwest", "serde", "serde_json", "thiserror", @@ -7537,16 +6742,6 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" -[[package]] -name = "uuid" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" -dependencies = [ - "getrandom 0.2.15", - "serde", -] - [[package]] name = "valuable" version = "0.1.0" @@ -8013,35 +7208,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "winreg" -version = "0.50.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] - -[[package]] -name = "ws_stream_wasm" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7999f5f4217fe3818726b66257a4475f71e74ffd190776ad053fa159e50737f5" -dependencies = [ - "async_io_stream", - "futures", - "js-sys", - "log", - "pharos", - "rustc_version 0.4.1", - "send_wrapper 0.6.0", - "thiserror", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - [[package]] name = "wyz" version = "0.5.1" diff --git a/crates/sdk/Cargo.toml b/crates/sdk/Cargo.toml index de9c70c18..0f830d010 100644 --- a/crates/sdk/Cargo.toml +++ b/crates/sdk/Cargo.toml @@ -15,7 +15,7 @@ serde = { version = "1.0.204", features = ["derive"] } twirp = { package = "twirp-rs", version = "0.13.0-succinct", optional = true } async-trait = "0.1.81" reqwest-middleware = { version = "0.3.2", optional = true } -reqwest = { version = "0.12.4", features = [ +reqwest = { version = "0.12.4", default-features = false, features = [ "rustls-tls", "trust-dns", "stream", @@ -38,7 +38,6 @@ alloy-sol-types = { version = "0.7.7", optional = true } dirs = "5.0.1" tempfile = "3.10.1" cfg-if = "1.0" -ethers = { version = "2", default-features = false, optional = true } strum = "0.26.3" strum_macros = "0.26.4" thiserror = "1.0.63" @@ -62,7 +61,8 @@ network = [ "dep:prost", "dep:alloy-sol-types", "dep:tokio", - "dep:ethers", + "dep:alloy-signer", + "dep:alloy-signer-local", "dep:reqwest", "dep:twirp", "dep:reqwest-middleware", @@ -74,7 +74,7 @@ network-v2 = [ "dep:alloy-signer-local", "dep:alloy-primitives", "dep:tokio", - "dep:ethers", + "dep:alloy-signer", "dep:reqwest", "dep:twirp", "dep:reqwest-middleware", diff --git a/crates/sdk/src/network/auth.rs b/crates/sdk/src/network/auth.rs index 4057e6d83..12dd3bd25 100644 --- a/crates/sdk/src/network/auth.rs +++ b/crates/sdk/src/network/auth.rs @@ -1,11 +1,9 @@ use std::{borrow::Cow, str::FromStr}; +use alloy_signer::Signer; +use alloy_signer_local::PrivateKeySigner; use alloy_sol_types::{sol, Eip712Domain, SolStruct}; use anyhow::Result; -use ethers::{ - signers::{LocalWallet, Signer}, - types::H256, -}; use crate::network::proto::network::UnclaimReason; @@ -54,12 +52,12 @@ sol! { /// https://eips.ethereum.org/EIPS/eip-712 pub struct NetworkAuth { // Holds a secp256k1 private key. - wallet: LocalWallet, + wallet: PrivateKeySigner, } impl NetworkAuth { pub fn new(private_key: &str) -> Self { - let wallet = LocalWallet::from_str(private_key).unwrap(); + let wallet = PrivateKeySigner::from_str(private_key).unwrap(); Self { wallet } } @@ -74,15 +72,15 @@ impl NetworkAuth { /// Gets the address of the auth's account, derived from the secp256k1 private key. pub fn get_address(&self) -> [u8; 20] { - self.wallet.address().0 + self.wallet.address().into() } // Generic function to sign a message based on the SolStruct. async fn sign_message(&self, type_struct: T) -> Result> { let domain_separator = Self::get_domain_separator(); let message_hash = type_struct.eip712_signing_hash(&domain_separator); - let signature = self.wallet.sign_hash(H256(message_hash.0))?; - Ok(signature.to_vec()) + let signature = self.wallet.sign_message(message_hash.as_slice()).await?; + Ok(signature.as_bytes().to_vec()) } /// Signs a message to to request to create a proof. diff --git a/examples/Cargo.lock b/examples/Cargo.lock index 6e0fdb547..f2a361ff0 100644 --- a/examples/Cargo.lock +++ b/examples/Cargo.lock @@ -2,16 +2,6 @@ # It is not intended for manual editing. version = 3 -[[package]] -name = "Inflector" -version = "0.11.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" -dependencies = [ - "lazy_static", - "regex", -] - [[package]] name = "addchain" version = "0.2.0" @@ -38,17 +28,6 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" -[[package]] -name = "aes" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" -dependencies = [ - "cfg-if", - "cipher", - "cpufeatures", -] - [[package]] name = "aggregation-program" version = "1.1.0" @@ -334,6 +313,20 @@ dependencies = [ "serde_json", ] +[[package]] +name = "alloy-signer" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "307324cca94354cd654d6713629f0383ec037e1ff9e3e3d547212471209860c0" +dependencies = [ + "alloy-primitives 0.8.9", + "async-trait", + "auto_impl", + "elliptic-curve", + "k256", + "thiserror", +] + [[package]] name = "alloy-sol-macro" version = "0.7.7" @@ -711,17 +704,6 @@ dependencies = [ "syn 2.0.85", ] -[[package]] -name = "async_io_stream" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6d7b9decdf35d8908a7e3ef02f64c5e9b1695e230154c0e8de3969142d9b94c" -dependencies = [ - "futures", - "pharos", - "rustc_version 0.4.1", -] - [[package]] name = "atomic-waker" version = "1.1.2" @@ -765,10 +747,10 @@ dependencies = [ "axum-core", "bytes", "futures-util", - "http 1.1.0", - "http-body 1.0.1", + "http", + "http-body", "http-body-util", - "hyper 1.5.0", + "hyper", "hyper-util", "itoa", "matchit", @@ -798,8 +780,8 @@ dependencies = [ "async-trait", "bytes", "futures-util", - "http 1.1.0", - "http-body 1.0.1", + "http", + "http-body", "http-body-util", "mime", "pin-project-lite", @@ -832,12 +814,6 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" -[[package]] -name = "base64" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" - [[package]] name = "base64" version = "0.21.7" @@ -856,12 +832,6 @@ version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" -[[package]] -name = "bech32" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445" - [[package]] name = "bincode" version = "1.3.3" @@ -877,7 +847,7 @@ version = "0.70.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f49d8fed880d473ea71efb9bf597651e77201bdd4893efe54c9e5d65ae04ce6f" dependencies = [ - "bitflags 2.6.0", + "bitflags", "cexpr", "clang-sys", "itertools 0.13.0", @@ -906,12 +876,6 @@ version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - [[package]] name = "bitflags" version = "2.6.0" @@ -954,19 +918,6 @@ dependencies = [ "constant_time_eq", ] -[[package]] -name = "blake3" -version = "1.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d82033247fd8e890df8f740e407ad4d038debb9eb1f40533fffb32e7d17dc6f7" -dependencies = [ - "arrayref", - "arrayvec 0.7.6", - "cc", - "cfg-if", - "constant_time_eq", -] - [[package]] name = "block-buffer" version = "0.9.0" @@ -1020,14 +971,14 @@ dependencies = [ [[package]] name = "bls12_381" version = "0.8.0" -source = "git+https://github.com/sp1-patches/bls12_381?branch=patch-v0.8.0#12f049691dc9165ccb1a0930327d2316976450a3" +source = "git+https://github.com/sp1-patches/bls12_381?tag=bls12_381-v0.8.0-patch-v1#444e109287eb3adc581425e160ed6041622dda35" dependencies = [ "cfg-if", "ff 0.13.0", "group 0.13.0", "pairing 0.23.0", "rand_core 0.6.4", - "sp1-lib 1.2.0", + "sp1-lib 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "subtle", ] @@ -1049,7 +1000,7 @@ version = "1.1.0" dependencies = [ "rand 0.8.5", "sp1-zkvm", - "substrate-bn 0.6.0 (git+https://github.com/sp1-patches/bn?rev=43d854d45b5727b1ff2b9f346d728e785bb8395c)", + "substrate-bn 0.6.0 (git+https://github.com/sp1-patches/bn?tag=substrate_bn-v0.6.0-patch-v1)", ] [[package]] @@ -1060,16 +1011,6 @@ dependencies = [ "sp1-sdk", ] -[[package]] -name = "bs58" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" -dependencies = [ - "sha2 0.10.8", - "tinyvec", -] - [[package]] name = "bumpalo" version = "3.16.0" @@ -1237,16 +1178,6 @@ dependencies = [ "windows-targets 0.52.6", ] -[[package]] -name = "cipher" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" -dependencies = [ - "crypto-common", - "inout", -] - [[package]] name = "clang-sys" version = "1.8.1" @@ -1298,58 +1229,6 @@ version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" -[[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 0.10.8", - "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 0.8.5", - "sha2 0.10.8", - "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 0.14.7", - "hex", - "ripemd", - "serde", - "serde_derive", - "sha2 0.10.8", - "sha3", - "thiserror", -] - [[package]] name = "colorchoice" version = "1.0.3" @@ -1518,15 +1397,6 @@ dependencies = [ "typenum", ] -[[package]] -name = "ctr" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" -dependencies = [ - "cipher", -] - [[package]] name = "ctrlc" version = "3.4.5" @@ -1540,7 +1410,7 @@ dependencies = [ [[package]] name = "curve25519-dalek" version = "4.1.3" -source = "git+https://github.com/sp1-patches/curve25519-dalek?branch=patch-curve25519-v4.1.3#1d73fd95f1a76bee8f46643cf78bbccc1fb06ede" +source = "git+https://github.com/sp1-patches/curve25519-dalek?tag=curve25519_dalek-v4.1.3-patch-v1#dbdd0ffeea0ff767affc3f6765d1edbdaa9e2cb9" dependencies = [ "anyhow", "cfg-if", @@ -1549,7 +1419,7 @@ dependencies = [ "digest 0.10.7", "fiat-crypto", "rustc_version 0.4.1", - "sp1-lib 1.2.0", + "sp1-lib 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "subtle", "zeroize", ] @@ -1557,13 +1427,28 @@ dependencies = [ [[package]] name = "curve25519-dalek-derive" version = "0.1.1" -source = "git+https://github.com/sp1-patches/curve25519-dalek?branch=patch-curve25519-v4.1.3#1d73fd95f1a76bee8f46643cf78bbccc1fb06ede" +source = "git+https://github.com/sp1-patches/curve25519-dalek?tag=curve25519_dalek-v4.1.3-patch-v1#dbdd0ffeea0ff767affc3f6765d1edbdaa9e2cb9" dependencies = [ "proc-macro2", "quote", "syn 2.0.85", ] +[[package]] +name = "curve25519-dalek-ng" +version = "4.1.1" +source = "git+https://github.com/sp1-patches/curve25519-dalek-ng?tag=curve25519_dalek_ng-v4.1.1-patch-v1#3fb3e7f6047ddeef0f0c9212f4604bd30d64bd28" +dependencies = [ + "anyhow", + "byteorder", + "cfg-if", + "digest 0.9.0", + "rand_core 0.6.4", + "sp1-lib 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "subtle-ng", + "zeroize", +] + [[package]] name = "curve25519-dalek-ng" version = "4.1.1" @@ -1888,9 +1773,9 @@ dependencies = [ [[package]] name = "ed25519-consensus" version = "2.1.0" -source = "git+https://github.com/sp1-patches/ed25519-consensus?branch=patch-v2.1.0#2b2c4b43344bc4daf5b1326f367f2d9d661eeabb" +source = "git+https://github.com/sp1-patches/ed25519-consensus?tag=ed25519_consensus-v2.1.0-patch-v1#2b2c4b43344bc4daf5b1326f367f2d9d661eeabb" dependencies = [ - "curve25519-dalek-ng", + "curve25519-dalek-ng 4.1.1 (git+https://github.com/sp1-patches/curve25519-dalek-ng?branch=patch-v4.1.1)", "hex", "rand_core 0.6.4", "serde", @@ -1959,24 +1844,6 @@ dependencies = [ "cfg-if", ] -[[package]] -name = "enr" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a3d8dc56e02f954cac8eb489772c552c473346fc34f67412bb6244fd647f7e4" -dependencies = [ - "base64 0.21.7", - "bytes", - "hex", - "k256", - "log", - "rand 0.8.5", - "rlp", - "serde", - "sha3", - "zeroize", -] - [[package]] name = "enr" version = "0.12.1" @@ -2042,367 +1909,103 @@ dependencies = [ ] [[package]] -name = "eth-keystore" -version = "0.5.0" +name = "eyre" +version = "0.6.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fda3bf123be441da5260717e0661c25a2fd9cb2b2c1d20bf2e05580047158ab" +checksum = "7cd915d99f24784cdc19fd37ef22b97e3ff0ae756c7e492e9fbfe897d61e2aec" dependencies = [ - "aes", - "ctr", - "digest 0.10.7", - "hex", - "hmac", - "pbkdf2 0.11.0", - "rand 0.8.5", - "scrypt", - "serde", - "serde_json", - "sha2 0.10.8", - "sha3", - "thiserror", - "uuid", + "indenter", + "once_cell", ] [[package]] -name = "ethabi" -version = "18.0.0" +name = "failure" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7413c5f74cc903ea37386a8965a936cbeb334bd270862fdece542c1b2dcbc898" +checksum = "d32e9bd16cc02eae7db7ef620b392808b89f6a5e16bb3497d159c6b92a0f4f86" dependencies = [ - "ethereum-types", - "hex", - "once_cell", - "regex", - "serde", - "serde_json", - "sha3", - "thiserror", - "uint", + "backtrace", + "failure_derive", ] [[package]] -name = "ethbloom" -version = "0.13.0" +name = "failure_derive" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c22d4b5885b6aa2fe5e8b9329fb8d232bf739e434e6b87347c63bdd00c120f60" +checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4" dependencies = [ - "crunchy", - "fixed-hash", - "impl-codec", - "impl-rlp", - "impl-serde", - "scale-info", - "tiny-keccak", + "proc-macro2", + "quote", + "syn 1.0.109", + "synstructure", ] [[package]] -name = "ethereum-types" -version = "0.14.1" +name = "fastrand" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02d215cbf040552efcbe99a38372fe80ab9d00268e20012b79fcd0f073edd8ee" -dependencies = [ - "ethbloom", - "fixed-hash", - "impl-codec", - "impl-rlp", - "impl-serde", - "primitive-types", - "scale-info", - "uint", -] +checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6" [[package]] -name = "ethers" -version = "2.0.14" +name = "fastrlp" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "816841ea989f0c69e459af1cf23a6b0033b19a55424a1ea3a30099becdb8dec0" +checksum = "139834ddba373bbdd213dffe02c8d110508dcf1726c2be27e8d1f7d7e1856418" dependencies = [ - "ethers-addressbook", - "ethers-contract", - "ethers-core", - "ethers-middleware", - "ethers-providers", - "ethers-signers", + "arrayvec 0.7.6", + "auto_impl", + "bytes", ] [[package]] -name = "ethers-addressbook" -version = "2.0.14" +name = "ff" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5495afd16b4faa556c3bba1f21b98b4983e53c1755022377051a975c3b021759" +checksum = "d013fc25338cc558c5c2cfbad646908fb23591e2404481826742b651c9af7160" dependencies = [ - "ethers-core", - "once_cell", - "serde", - "serde_json", + "bitvec", + "rand_core 0.6.4", + "subtle", ] [[package]] -name = "ethers-contract" -version = "2.0.14" +name = "ff" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fceafa3578c836eeb874af87abacfb041f92b4da0a78a5edd042564b8ecdaaa" +checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" dependencies = [ - "const-hex", - "ethers-contract-abigen", - "ethers-contract-derive", - "ethers-core", - "ethers-providers", - "futures-util", - "once_cell", - "pin-project", - "serde", - "serde_json", - "thiserror", + "bitvec", + "byteorder", + "ff_derive", + "rand_core 0.6.4", + "subtle", ] [[package]] -name = "ethers-contract-abigen" -version = "2.0.14" +name = "ff_derive" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04ba01fbc2331a38c429eb95d4a570166781f14290ef9fdb144278a90b5a739b" +checksum = "e9f54704be45ed286151c5e11531316eaef5b8f5af7d597b806fdb8af108d84a" dependencies = [ - "Inflector", - "const-hex", - "dunce", - "ethers-core", - "eyre", - "prettyplease", + "addchain", + "cfg-if", + "num-bigint 0.3.3", + "num-integer", + "num-traits", "proc-macro2", "quote", - "regex", - "serde", - "serde_json", - "syn 2.0.85", - "toml", - "walkdir", + "syn 1.0.109", ] [[package]] -name = "ethers-contract-derive" -version = "2.0.14" +name = "fiat-crypto" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87689dcabc0051cde10caaade298f9e9093d65f6125c14575db3fd8c669a168f" -dependencies = [ - "Inflector", - "const-hex", - "ethers-contract-abigen", - "ethers-core", - "proc-macro2", - "quote", - "serde_json", - "syn 2.0.85", -] - -[[package]] -name = "ethers-core" -version = "2.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82d80cc6ad30b14a48ab786523af33b37f28a8623fc06afd55324816ef18fb1f" -dependencies = [ - "arrayvec 0.7.6", - "bytes", - "cargo_metadata", - "chrono", - "const-hex", - "elliptic-curve", - "ethabi", - "generic-array 0.14.7", - "k256", - "num_enum 0.7.3", - "once_cell", - "open-fastrlp", - "rand 0.8.5", - "rlp", - "serde", - "serde_json", - "strum", - "syn 2.0.85", - "tempfile", - "thiserror", - "tiny-keccak", - "unicode-xid", -] - -[[package]] -name = "ethers-middleware" -version = "2.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48f9fdf09aec667c099909d91908d5eaf9be1bd0e2500ba4172c1d28bfaa43de" -dependencies = [ - "async-trait", - "auto_impl", - "ethers-contract", - "ethers-core", - "ethers-providers", - "ethers-signers", - "futures-channel", - "futures-locks", - "futures-util", - "instant", - "reqwest 0.11.27", - "serde", - "serde_json", - "thiserror", - "tokio", - "tracing", - "tracing-futures", - "url", -] - -[[package]] -name = "ethers-providers" -version = "2.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6434c9a33891f1effc9c75472e12666db2fa5a0fec4b29af6221680a6fe83ab2" -dependencies = [ - "async-trait", - "auto_impl", - "base64 0.21.7", - "bytes", - "const-hex", - "enr 0.10.0", - "ethers-core", - "futures-core", - "futures-timer", - "futures-util", - "hashers", - "http 0.2.12", - "instant", - "jsonwebtoken", - "once_cell", - "pin-project", - "reqwest 0.11.27", - "serde", - "serde_json", - "thiserror", - "tokio", - "tracing", - "tracing-futures", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "ws_stream_wasm", -] - -[[package]] -name = "ethers-signers" -version = "2.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "228875491c782ad851773b652dd8ecac62cda8571d3bc32a5853644dd26766c2" -dependencies = [ - "async-trait", - "coins-bip32", - "coins-bip39", - "const-hex", - "elliptic-curve", - "eth-keystore", - "ethers-core", - "rand 0.8.5", - "sha2 0.10.8", - "thiserror", - "tracing", -] - -[[package]] -name = "eyre" -version = "0.6.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cd915d99f24784cdc19fd37ef22b97e3ff0ae756c7e492e9fbfe897d61e2aec" -dependencies = [ - "indenter", - "once_cell", -] - -[[package]] -name = "failure" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d32e9bd16cc02eae7db7ef620b392808b89f6a5e16bb3497d159c6b92a0f4f86" -dependencies = [ - "backtrace", - "failure_derive", -] - -[[package]] -name = "failure_derive" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", - "synstructure", -] - -[[package]] -name = "fastrand" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6" - -[[package]] -name = "fastrlp" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "139834ddba373bbdd213dffe02c8d110508dcf1726c2be27e8d1f7d7e1856418" -dependencies = [ - "arrayvec 0.7.6", - "auto_impl", - "bytes", -] - -[[package]] -name = "ff" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d013fc25338cc558c5c2cfbad646908fb23591e2404481826742b651c9af7160" -dependencies = [ - "bitvec", - "rand_core 0.6.4", - "subtle", -] - -[[package]] -name = "ff" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" -dependencies = [ - "bitvec", - "byteorder", - "ff_derive", - "rand_core 0.6.4", - "subtle", -] - -[[package]] -name = "ff_derive" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9f54704be45ed286151c5e11531316eaef5b8f5af7d597b806fdb8af108d84a" -dependencies = [ - "addchain", - "cfg-if", - "num-bigint 0.3.3", - "num-integer", - "num-traits", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "fiat-crypto" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" - -[[package]] -name = "fibonacci-program" -version = "1.1.0" +checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" + +[[package]] +name = "fibonacci-program" +version = "1.1.0" dependencies = [ "sp1-zkvm", ] @@ -2527,16 +2130,6 @@ version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" -[[package]] -name = "futures-locks" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45ec6fe3675af967e67c5536c0b9d44e34e6c52f86bedc4ea49c5317b8e94d06" -dependencies = [ - "futures-channel", - "futures-task", -] - [[package]] name = "futures-macro" version = "0.3.31" @@ -2560,16 +2153,6 @@ version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" -[[package]] -name = "futures-timer" -version = "3.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" -dependencies = [ - "gloo-timers", - "send_wrapper 0.4.0", -] - [[package]] name = "futures-util" version = "0.3.31" @@ -2588,15 +2171,6 @@ dependencies = [ "slab", ] -[[package]] -name = "fxhash" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" -dependencies = [ - "byteorder", -] - [[package]] name = "gcd" version = "2.3.0" @@ -2647,7 +2221,7 @@ version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b903b73e45dc0c6c596f2d37eccece7c1c8bb6e4407b001096387c63d0d93724" dependencies = [ - "bitflags 2.6.0", + "bitflags", "libc", "libgit2-sys", "log", @@ -2660,18 +2234,6 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" -[[package]] -name = "gloo-timers" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c" -dependencies = [ - "futures-channel", - "futures-core", - "js-sys", - "wasm-bindgen", -] - [[package]] name = "groth16-verifier-program" version = "1.1.0" @@ -2684,7 +2246,6 @@ dependencies = [ name = "groth16-verifier-script" version = "1.1.0" dependencies = [ - "hex", "sp1-build", "sp1-sdk", ] @@ -2712,25 +2273,6 @@ dependencies = [ "subtle", ] -[[package]] -name = "h2" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" -dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http 0.2.12", - "indexmap 2.6.0", - "slab", - "tokio", - "tokio-util", - "tracing", -] - [[package]] name = "h2" version = "0.4.6" @@ -2742,7 +2284,7 @@ dependencies = [ "fnv", "futures-core", "futures-sink", - "http 1.1.0", + "http", "indexmap 2.6.0", "slab", "tokio", @@ -2808,15 +2350,6 @@ dependencies = [ "serde", ] -[[package]] -name = "hashers" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2bca93b15ea5a746f220e56587f71e73c6165eab783df9e26590069953e3c30" -dependencies = [ - "fxhash", -] - [[package]] name = "heck" version = "0.5.0" @@ -2853,17 +2386,6 @@ dependencies = [ "digest 0.10.7", ] -[[package]] -name = "http" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - [[package]] name = "http" version = "1.1.0" @@ -2875,17 +2397,6 @@ dependencies = [ "itoa", ] -[[package]] -name = "http-body" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" -dependencies = [ - "bytes", - "http 0.2.12", - "pin-project-lite", -] - [[package]] name = "http-body" version = "1.0.1" @@ -2893,7 +2404,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ "bytes", - "http 1.1.0", + "http", ] [[package]] @@ -2904,8 +2415,8 @@ checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" dependencies = [ "bytes", "futures-util", - "http 1.1.0", - "http-body 1.0.1", + "http", + "http-body", "pin-project-lite", ] @@ -2921,30 +2432,6 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" -[[package]] -name = "hyper" -version = "0.14.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c08302e8fa335b151b788c775ff56e7a03ae64ff85c548ee820fecb70356e85" -dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "h2 0.3.26", - "http 0.2.12", - "http-body 0.4.6", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "socket2", - "tokio", - "tower-service", - "tracing", - "want", -] - [[package]] name = "hyper" version = "1.5.0" @@ -2954,9 +2441,9 @@ dependencies = [ "bytes", "futures-channel", "futures-util", - "h2 0.4.6", - "http 1.1.0", - "http-body 1.0.1", + "h2", + "http", + "http-body", "httparse", "httpdate", "itoa", @@ -2973,8 +2460,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333" dependencies = [ "futures-util", - "http 1.1.0", - "hyper 1.5.0", + "http", + "hyper", "hyper-util", "rustls", "rustls-pki-types", @@ -2984,19 +2471,6 @@ dependencies = [ "webpki-roots", ] -[[package]] -name = "hyper-tls" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" -dependencies = [ - "bytes", - "hyper 0.14.31", - "native-tls", - "tokio", - "tokio-native-tls", -] - [[package]] name = "hyper-tls" version = "0.6.0" @@ -3005,7 +2479,7 @@ checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" dependencies = [ "bytes", "http-body-util", - "hyper 1.5.0", + "hyper", "hyper-util", "native-tls", "tokio", @@ -3022,9 +2496,9 @@ dependencies = [ "bytes", "futures-channel", "futures-util", - "http 1.1.0", - "http-body 1.0.1", - "hyper 1.5.0", + "http", + "http-body", + "hyper", "pin-project-lite", "socket2", "tokio", @@ -3080,24 +2554,6 @@ dependencies = [ "parity-scale-codec", ] -[[package]] -name = "impl-rlp" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f28220f89297a075ddc7245cd538076ee98b01f2a9c23a53a4f1105d5a322808" -dependencies = [ - "rlp", -] - -[[package]] -name = "impl-serde" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc88fc67028ae3db0c853baa36269d398d5f45b6982f95549ff5def78c935cd" -dependencies = [ - "serde", -] - [[package]] name = "impl-trait-for-tuples" version = "0.2.2" @@ -3150,15 +2606,6 @@ dependencies = [ "unicode-width", ] -[[package]] -name = "inout" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" -dependencies = [ - "generic-array 0.14.7", -] - [[package]] name = "instant" version = "0.1.13" @@ -3289,20 +2736,6 @@ dependencies = [ "sp1-sdk", ] -[[package]] -name = "jsonwebtoken" -version = "8.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378" -dependencies = [ - "base64 0.21.7", - "pem", - "ring 0.16.20", - "serde", - "serde_json", - "simple_asn1", -] - [[package]] name = "jubjub" version = "0.9.0" @@ -3360,7 +2793,7 @@ dependencies = [ "hex", "sha2 0.10.8", "sp1_bls12_381", - "spin 0.9.8", + "spin", ] [[package]] @@ -3369,7 +2802,7 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" dependencies = [ - "spin 0.9.8", + "spin", ] [[package]] @@ -3412,7 +2845,7 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "bitflags 2.6.0", + "bitflags", "libc", ] @@ -3563,7 +2996,7 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" dependencies = [ - "bitflags 2.6.0", + "bitflags", "cfg-if", "cfg_aliases", "libc", @@ -3790,7 +3223,6 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" dependencies = [ - "proc-macro-crate 3.2.0", "proc-macro2", "quote", "syn 2.0.85", @@ -3852,7 +3284,7 @@ dependencies = [ "alloy-serde", "derive_more 1.0.0", "serde", - "spin 0.9.8", + "spin", ] [[package]] @@ -3879,38 +3311,13 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" -[[package]] -name = "open-fastrlp" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "786393f80485445794f6043fd3138854dd109cc6c4bd1a6383db304c9ce9b9ce" -dependencies = [ - "arrayvec 0.7.6", - "auto_impl", - "bytes", - "ethereum-types", - "open-fastrlp-derive", -] - -[[package]] -name = "open-fastrlp-derive" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "003b2be5c6c53c1cfeb0a238b8a1c3915cd410feb684457a36c10038f764bb1c" -dependencies = [ - "bytes", - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "openssl" version = "0.10.68" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" dependencies = [ - "bitflags 2.6.0", + "bitflags", "cfg-if", "foreign-types", "libc", @@ -3974,9 +3381,8 @@ dependencies = [ [[package]] name = "p3-air" -version = "0.1.4-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "066f571b2e645505ed5972dd0e1e252ba03352150830c9566769ca711c0f1e9b" +version = "0.1.0" +source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#db3d45d4ec899efaf8f7234a8573f285fbdda5db" dependencies = [ "p3-field", "p3-matrix", @@ -3984,9 +3390,8 @@ dependencies = [ [[package]] name = "p3-baby-bear" -version = "0.1.4-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff00f571044d299310d9659c6e51c98422de3bf94b8577f7f30cf59cf2043e40" +version = "0.1.0" +source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#db3d45d4ec899efaf8f7234a8573f285fbdda5db" dependencies = [ "num-bigint 0.4.6", "p3-field", @@ -3997,21 +3402,10 @@ dependencies = [ "serde", ] -[[package]] -name = "p3-blake3" -version = "0.1.4-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc4cb69ae54a279bbbd477566d1bdb71aa879b528fd658d0fcfc36f54b00217c" -dependencies = [ - "blake3", - "p3-symmetric", -] - [[package]] name = "p3-bn254-fr" -version = "0.1.4-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf19917f986d45e9abb6d177e875824ced6eed096480d574fce16f2c45c721ea" +version = "0.1.0" +source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#db3d45d4ec899efaf8f7234a8573f285fbdda5db" dependencies = [ "ff 0.13.0", "num-bigint 0.4.6", @@ -4024,9 +3418,8 @@ dependencies = [ [[package]] name = "p3-challenger" -version = "0.1.4-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3be7e4fbce4566a93091107eadfafa0b5374bd1ffd3e0f6b850da3ff72eb183f" +version = "0.1.0" +source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#db3d45d4ec899efaf8f7234a8573f285fbdda5db" dependencies = [ "p3-field", "p3-maybe-rayon", @@ -4038,13 +3431,11 @@ dependencies = [ [[package]] name = "p3-commit" -version = "0.1.4-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a03eb0f99d68a712c41e658e9a7782a0705d4ffcfb6232a43bd3f1ef9591002" +version = "0.1.0" +source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#db3d45d4ec899efaf8f7234a8573f285fbdda5db" dependencies = [ "itertools 0.12.1", "p3-challenger", - "p3-dft", "p3-field", "p3-matrix", "p3-util", @@ -4053,9 +3444,8 @@ dependencies = [ [[package]] name = "p3-dft" -version = "0.1.4-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1556de968523fbe5d804ab50600ea306fcceea3500cfd7601e40882480524664" +version = "0.1.0" +source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#db3d45d4ec899efaf8f7234a8573f285fbdda5db" dependencies = [ "p3-field", "p3-matrix", @@ -4066,9 +3456,8 @@ dependencies = [ [[package]] name = "p3-field" -version = "0.1.4-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cec2af6e1ac47a2035af5165e668d64612c4b9ccabd06df37fc1fd381fdf8a71" +version = "0.1.0" +source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#db3d45d4ec899efaf8f7234a8573f285fbdda5db" dependencies = [ "itertools 0.12.1", "num-bigint 0.4.6", @@ -4080,9 +3469,8 @@ dependencies = [ [[package]] name = "p3-fri" -version = "0.1.4-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f351ee9f9d4256455164565cd91e3e6d2487cc2a5355515fa2b6d479269188dd" +version = "0.1.0" +source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#db3d45d4ec899efaf8f7234a8573f285fbdda5db" dependencies = [ "itertools 0.12.1", "p3-challenger", @@ -4099,9 +3487,8 @@ dependencies = [ [[package]] name = "p3-interpolation" -version = "0.1.4-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d24d0f2907a374ebe4545fcff3120d6376d9630cf0bef30feedcfc5908ea2c37" +version = "0.1.0" +source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#db3d45d4ec899efaf8f7234a8573f285fbdda5db" dependencies = [ "p3-field", "p3-matrix", @@ -4110,9 +3497,8 @@ dependencies = [ [[package]] name = "p3-keccak-air" -version = "0.1.4-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e66badd47cedf6570e91a0cabc389b80dfd53ba1a6e9a45a3923fd54b86122ff" +version = "0.1.0" +source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#db3d45d4ec899efaf8f7234a8573f285fbdda5db" dependencies = [ "p3-air", "p3-field", @@ -4124,9 +3510,8 @@ dependencies = [ [[package]] name = "p3-matrix" -version = "0.1.4-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa272f3ae77ed8d73478aa7c89e712efb15bda3ff4aff10fadfe11a012cd5389" +version = "0.1.0" +source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#db3d45d4ec899efaf8f7234a8573f285fbdda5db" dependencies = [ "itertools 0.12.1", "p3-field", @@ -4139,18 +3524,16 @@ dependencies = [ [[package]] name = "p3-maybe-rayon" -version = "0.1.4-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3eecad6292021858f282d643d9d1284ab112a200494d589863a9c4080e578ef0" +version = "0.1.0" +source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#db3d45d4ec899efaf8f7234a8573f285fbdda5db" dependencies = [ "rayon", ] [[package]] name = "p3-mds" -version = "0.1.4-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "716c4dbe68a02f1541eb09149d07b8663a3a5951b1864a31cd67ff3bb0826e57" +version = "0.1.0" +source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#db3d45d4ec899efaf8f7234a8573f285fbdda5db" dependencies = [ "itertools 0.12.1", "p3-dft", @@ -4163,9 +3546,8 @@ dependencies = [ [[package]] name = "p3-merkle-tree" -version = "0.1.4-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad7ebab52a03c26025988663a135aed62f5084a2e2ea262176dc8748efb593e5" +version = "0.1.0" +source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#db3d45d4ec899efaf8f7234a8573f285fbdda5db" dependencies = [ "itertools 0.12.1", "p3-commit", @@ -4180,9 +3562,8 @@ dependencies = [ [[package]] name = "p3-poseidon2" -version = "0.1.4-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39c042efa15beab7a8c4d0ca9b9e4cbda7582be0c08e121e830fec45f082935b" +version = "0.1.0" +source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#db3d45d4ec899efaf8f7234a8573f285fbdda5db" dependencies = [ "gcd", "p3-field", @@ -4194,9 +3575,8 @@ dependencies = [ [[package]] name = "p3-symmetric" -version = "0.1.4-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9896a831f5b688adc13f6fbe1dcf66ecfaa4622a500f81aa745610e777acb72" +version = "0.1.0" +source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#db3d45d4ec899efaf8f7234a8573f285fbdda5db" dependencies = [ "itertools 0.12.1", "p3-field", @@ -4205,9 +3585,8 @@ dependencies = [ [[package]] name = "p3-uni-stark" -version = "0.1.4-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8437ebcd060c8a5479898030b114a93da8a86eb4c2e5f313d9eeaaf40c6e6f61" +version = "0.1.0" +source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#db3d45d4ec899efaf8f7234a8573f285fbdda5db" dependencies = [ "itertools 0.12.1", "p3-air", @@ -4224,9 +3603,8 @@ dependencies = [ [[package]] name = "p3-util" -version = "0.1.4-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dedb9d27ba47ac314c6fac4ca54e55c3e486c864d51ec5ba55dbe47b75121157" +version = "0.1.0" +source = "git+https://github.com/Plonky3/Plonky3?branch=sp1-v4#db3d45d4ec899efaf8f7234a8573f285fbdda5db" dependencies = [ "serde", ] @@ -4340,52 +3718,24 @@ version = "1.1.0" dependencies = [ "alloy-primitives 0.8.9", "curve25519-dalek", - "curve25519-dalek-ng", + "curve25519-dalek-ng 4.1.1 (git+https://github.com/sp1-patches/curve25519-dalek-ng?tag=curve25519_dalek_ng-v4.1.1-patch-v1)", "ed25519-consensus", "ed25519-dalek", - "revm-precompile", - "secp256k1", - "sha2 0.10.8", - "sha2 0.9.9", - "sp1-zkvm", - "tiny-keccak", -] - -[[package]] -name = "patch-testing-script" -version = "1.1.0" -dependencies = [ - "sp1-build", - "sp1-core-executor", - "sp1-sdk", -] - -[[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", + "revm-precompile", + "secp256k1", + "sha2 0.10.8", + "sha2 0.9.9", + "sp1-zkvm", + "tiny-keccak", ] [[package]] -name = "pem" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8" +name = "patch-testing-script" +version = "1.1.0" dependencies = [ - "base64 0.13.1", + "sp1-build", + "sp1-core-executor", + "sp1-sdk", ] [[package]] @@ -4423,36 +3773,6 @@ dependencies = [ "ucd-trie", ] -[[package]] -name = "pharos" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9567389417feee6ce15dd6527a8a1ecac205ef62c2932bcf3d9f6fc5b78b414" -dependencies = [ - "futures", - "rustc_version 0.4.1", -] - -[[package]] -name = "pin-project" -version = "1.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be57f64e946e500c8ee36ef6331845d40a93055567ec57e8fae13efd33759b95" -dependencies = [ - "pin-project-internal", -] - -[[package]] -name = "pin-project-internal" -version = "1.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c0f5fad0874fc7abcd4d750e76917eaebbecaa2c20bde22e1dbeeba8beb758c" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.85", -] - [[package]] name = "pin-project-lite" version = "0.2.15" @@ -4562,9 +3882,6 @@ checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" dependencies = [ "fixed-hash", "impl-codec", - "impl-rlp", - "impl-serde", - "scale-info", "uint", ] @@ -4650,7 +3967,7 @@ checksum = "b4c2511913b88df1637da85cc8d96ec8e43a3f8bb8ccb71ee1ac240d6f3df58d" dependencies = [ "bit-set", "bit-vec", - "bitflags 2.6.0", + "bitflags", "lazy_static", "num-traits", "rand 0.8.5", @@ -4749,7 +4066,7 @@ checksum = "fadfaed2cd7f389d0161bb73eeb07b7b78f8691047a6f3e73caaeae55310a4a6" dependencies = [ "bytes", "rand 0.8.5", - "ring 0.17.8", + "ring", "rustc-hash 2.0.0", "rustls", "slab", @@ -4907,7 +4224,7 @@ version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f" dependencies = [ - "bitflags 2.6.0", + "bitflags", ] [[package]] @@ -4981,46 +4298,6 @@ version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" -[[package]] -name = "reqwest" -version = "0.11.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" -dependencies = [ - "base64 0.21.7", - "bytes", - "encoding_rs", - "futures-core", - "futures-util", - "h2 0.3.26", - "http 0.2.12", - "http-body 0.4.6", - "hyper 0.14.31", - "hyper-tls 0.5.0", - "ipnet", - "js-sys", - "log", - "mime", - "native-tls", - "once_cell", - "percent-encoding", - "pin-project-lite", - "rustls-pemfile 1.0.4", - "serde", - "serde_json", - "serde_urlencoded", - "sync_wrapper 0.1.2", - "system-configuration 0.5.1", - "tokio", - "tokio-native-tls", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "winreg", -] - [[package]] name = "reqwest" version = "0.12.8" @@ -5032,13 +4309,13 @@ dependencies = [ "encoding_rs", "futures-core", "futures-util", - "h2 0.4.6", - "http 1.1.0", - "http-body 1.0.1", + "h2", + "http", + "http-body", "http-body-util", - "hyper 1.5.0", + "hyper", "hyper-rustls", - "hyper-tls 0.6.0", + "hyper-tls", "hyper-util", "ipnet", "js-sys", @@ -5050,13 +4327,13 @@ dependencies = [ "pin-project-lite", "quinn", "rustls", - "rustls-pemfile 2.2.0", + "rustls-pemfile", "rustls-pki-types", "serde", "serde_json", "serde_urlencoded", "sync_wrapper 1.0.1", - "system-configuration 0.6.1", + "system-configuration", "tokio", "tokio-native-tls", "tokio-rustls", @@ -5079,8 +4356,8 @@ checksum = "562ceb5a604d3f7c885a792d42c199fd8af239d0a51b2fa6a78aafa092452b04" dependencies = [ "anyhow", "async-trait", - "http 1.1.0", - "reqwest 0.12.8", + "http", + "reqwest", "serde", "thiserror", "tower-service", @@ -5322,7 +4599,7 @@ source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374 dependencies = [ "alloy-primitives 0.8.9", "alloy-rlp", - "enr 0.12.1", + "enr", "serde_with", "thiserror", "url", @@ -5566,7 +4843,7 @@ dependencies = [ "ripemd", "secp256k1", "sha2 0.10.8", - "substrate-bn 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "substrate-bn 0.6.0 (git+https://github.com/sp1-patches/bn?tag=substrate_bn-v0.6.0-patch-v1)", ] [[package]] @@ -5578,7 +4855,7 @@ dependencies = [ "alloy-eips", "alloy-primitives 0.8.9", "auto_impl", - "bitflags 2.6.0", + "bitflags", "bitvec", "c-kzg", "cfg-if", @@ -5600,21 +4877,6 @@ dependencies = [ "subtle", ] -[[package]] -name = "ring" -version = "0.16.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" -dependencies = [ - "cc", - "libc", - "once_cell", - "spin 0.5.2", - "untrusted 0.7.1", - "web-sys", - "winapi", -] - [[package]] name = "ring" version = "0.17.8" @@ -5625,8 +4887,8 @@ dependencies = [ "cfg-if", "getrandom", "libc", - "spin 0.9.8", - "untrusted 0.9.0", + "spin", + "untrusted", "windows-sys 0.52.0", ] @@ -5646,21 +4908,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" dependencies = [ "bytes", - "rlp-derive", "rustc-hex", ] -[[package]] -name = "rlp-derive" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e33d7b2abe0c340d8797fe2907d3f20d3b5ea5908683618bfe80df7f621f672a" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "roaring" version = "0.10.6" @@ -5929,7 +5179,7 @@ version = "0.38.38" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa260229e6538e52293eeb577aabd09945a09d6d9cc0fc550ed7529056c2e32a" dependencies = [ - "bitflags 2.6.0", + "bitflags", "errno", "libc", "linux-raw-sys", @@ -5943,22 +5193,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5fbb44d7acc4e873d613422379f69f237a1b141928c02f6bc6ccfddddc2d7993" dependencies = [ "once_cell", - "ring 0.17.8", + "ring", "rustls-pki-types", "rustls-webpki", "subtle", "zeroize", ] -[[package]] -name = "rustls-pemfile" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" -dependencies = [ - "base64 0.21.7", -] - [[package]] name = "rustls-pemfile" version = "2.2.0" @@ -5980,9 +5221,9 @@ version = "0.102.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" dependencies = [ - "ring 0.17.8", + "ring", "rustls-pki-types", - "untrusted 0.9.0", + "untrusted", ] [[package]] @@ -6009,24 +5250,6 @@ version = "1.0.18" 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" -dependencies = [ - "cipher", -] - -[[package]] -name = "same-file" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" -dependencies = [ - "winapi-util", -] - [[package]] name = "scale-info" version = "2.11.5" @@ -6075,18 +5298,6 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" -[[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 0.10.8", -] - [[package]] name = "sdd" version = "3.0.4" @@ -6110,7 +5321,7 @@ dependencies = [ [[package]] name = "secp256k1" version = "0.29.0" -source = "git+https://github.com/sp1-patches/rust-secp256k1?branch=patch-secp256k1-v0.29.0#13910d476dbdaf436312a9f096ee312593028557" +source = "git+https://github.com/sp1-patches/rust-secp256k1?tag=secp256k1-v0.29.0-patch-v1#13910d476dbdaf436312a9f096ee312593028557" dependencies = [ "cfg-if", "ecdsa 0.16.9 (git+https://github.com/sp1-patches/signatures?branch=patch-ecdsa-v0.16.9)", @@ -6123,7 +5334,7 @@ dependencies = [ [[package]] name = "secp256k1-sys" version = "0.10.0" -source = "git+https://github.com/sp1-patches/rust-secp256k1?branch=patch-secp256k1-v0.29.0#13910d476dbdaf436312a9f096ee312593028557" +source = "git+https://github.com/sp1-patches/rust-secp256k1?tag=secp256k1-v0.29.0-patch-v1#13910d476dbdaf436312a9f096ee312593028557" dependencies = [ "cc", ] @@ -6134,7 +5345,7 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.6.0", + "bitflags", "core-foundation", "core-foundation-sys", "libc", @@ -6178,18 +5389,6 @@ dependencies = [ "pest", ] -[[package]] -name = "send_wrapper" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f638d531eccd6e23b980caf34876660d38e265409d8e99b397ab71eb3612fad0" - -[[package]] -name = "send_wrapper" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" - [[package]] name = "serde" version = "1.0.213" @@ -6263,15 +5462,6 @@ dependencies = [ "syn 2.0.85", ] -[[package]] -name = "serde_spanned" -version = "0.6.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" -dependencies = [ - "serde", -] - [[package]] name = "serde_urlencoded" version = "0.7.1" @@ -6354,7 +5544,7 @@ dependencies = [ [[package]] name = "sha2" version = "0.9.9" -source = "git+https://github.com/sp1-patches/RustCrypto-hashes?branch=patch-sha2-v0.9.9#db82a4848f8d033eab544255e1efa036cc06f054" +source = "git+https://github.com/sp1-patches/RustCrypto-hashes?tag=sha2-v0.9.9-patch-v1#db82a4848f8d033eab544255e1efa036cc06f054" dependencies = [ "block-buffer 0.9.0", "cfg-if", @@ -6366,7 +5556,7 @@ dependencies = [ [[package]] name = "sha2" version = "0.10.8" -source = "git+https://github.com/sp1-patches/RustCrypto-hashes?branch=patch-v0.10.8#1f224388fdede7cef649bce0d63876d1a9e3f515" +source = "git+https://github.com/sp1-patches/RustCrypto-hashes?tag=sha2-v0.10.8-patch-v1#1f224388fdede7cef649bce0d63876d1a9e3f515" dependencies = [ "cfg-if", "cpufeatures", @@ -6427,18 +5617,6 @@ dependencies = [ "rand_core 0.6.4", ] -[[package]] -name = "simple_asn1" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085" -dependencies = [ - "num-bigint 0.4.6", - "num-traits", - "thiserror", - "time", -] - [[package]] name = "size" version = "0.4.1" @@ -6543,7 +5721,6 @@ dependencies = [ "num_cpus", "p3-air", "p3-baby-bear", - "p3-blake3", "p3-challenger", "p3-field", "p3-keccak-air", @@ -6569,6 +5746,7 @@ dependencies = [ "tracing-forest", "tracing-subscriber", "typenum", + "vec_map", "web-time", ] @@ -6647,15 +5825,6 @@ dependencies = [ "serde", ] -[[package]] -name = "sp1-lib" -version = "3.0.0" -source = "git+https://github.com/succinctlabs/sp1.git?branch=dev#b5c6a41816db138a84371178a84538356cd9addd" -dependencies = [ - "bincode", - "serde", -] - [[package]] name = "sp1-primitives" version = "3.0.0" @@ -6682,7 +5851,6 @@ dependencies = [ "dirs", "eyre", "itertools 0.13.0", - "lazy_static", "lru", "num-bigint 0.4.6", "p3-baby-bear", @@ -6692,8 +5860,6 @@ dependencies = [ "p3-field", "p3-matrix", "p3-symmetric", - "rayon", - "reqwest 0.11.27", "serde", "serde_json", "serial_test", @@ -6705,8 +5871,6 @@ dependencies = [ "sp1-recursion-core", "sp1-recursion-gnark-ffi", "sp1-stark", - "subtle-encoding", - "tempfile", "thiserror", "tracing", "tracing-subscriber", @@ -6834,13 +5998,13 @@ dependencies = [ name = "sp1-sdk" version = "3.0.0" dependencies = [ + "alloy-signer", "alloy-sol-types 0.7.7", "anyhow", "async-trait", "bincode", "cfg-if", "dirs", - "ethers", "futures", "hashbrown 0.14.5", "hex", @@ -6851,7 +6015,7 @@ dependencies = [ "p3-field", "p3-fri", "prost 0.13.3", - "reqwest 0.12.8", + "reqwest", "reqwest-middleware", "serde", "sp1-core-executor", @@ -6875,7 +6039,6 @@ name = "sp1-stark" version = "3.0.0" dependencies = [ "arrayref", - "getrandom", "hashbrown 0.14.5", "itertools 0.13.0", "num-traits", @@ -6900,7 +6063,6 @@ dependencies = [ "strum", "strum_macros", "sysinfo", - "thiserror", "tracing", ] @@ -6911,13 +6073,13 @@ dependencies = [ "hex", "lazy_static", "sha2 0.10.8", - "substrate-bn 0.6.0 (git+https://github.com/yuwen01/bn?branch=yuwen/sp1-flag)", + "substrate-bn 0.6.0 (git+https://github.com/sp1-patches/bn?tag=substrate_bn-v0.6.0-patch-v2)", "thiserror-no-std", ] [[package]] name = "sp1-zkvm" -version = "3.0.0" +version = "3.0.1" dependencies = [ "cfg-if", "getrandom", @@ -6946,12 +6108,6 @@ dependencies = [ "subtle", ] -[[package]] -name = "spin" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" - [[package]] name = "spin" version = "0.9.8" @@ -7065,27 +6221,13 @@ dependencies = [ [[package]] name = "substrate-bn" version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b5bbfa79abbae15dd642ea8176a21a635ff3c00059961d1ea27ad04e5b441c" -dependencies = [ - "byteorder", - "crunchy", - "lazy_static", - "rand 0.8.5", - "rustc-hex", -] - -[[package]] -name = "substrate-bn" -version = "0.6.0" -source = "git+https://github.com/yuwen01/bn?branch=yuwen/sp1-flag#d5c1270f612fcaa7107e5b3a5686df8fed78cc3b" +source = "git+https://github.com/sp1-patches/bn?tag=substrate_bn-v0.6.0-patch-v1#9b0e986d32ea128a08cebfe90767072beccdb45f" dependencies = [ "bytemuck", "byteorder", "cfg-if", "crunchy", "lazy_static", - "num-bigint 0.4.6", "rand 0.8.5", "rustc-hex", "sp1-lib 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -7094,16 +6236,17 @@ dependencies = [ [[package]] name = "substrate-bn" version = "0.6.0" -source = "git+https://github.com/sp1-patches/bn?rev=43d854d45b5727b1ff2b9f346d728e785bb8395c#43d854d45b5727b1ff2b9f346d728e785bb8395c" +source = "git+https://github.com/sp1-patches/bn?tag=substrate_bn-v0.6.0-patch-v2#a1974dba1f3b75c16b48a84037edc12b36bba1cf" dependencies = [ "bytemuck", "byteorder", "cfg-if", "crunchy", "lazy_static", + "num-bigint 0.4.6", "rand 0.8.5", "rustc-hex", - "sp1-lib 3.0.0 (git+https://github.com/succinctlabs/sp1.git?branch=dev)", + "sp1-lib 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -7215,36 +6358,15 @@ dependencies = [ "windows", ] -[[package]] -name = "system-configuration" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" -dependencies = [ - "bitflags 1.3.2", - "core-foundation", - "system-configuration-sys 0.5.0", -] - [[package]] name = "system-configuration" version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ - "bitflags 2.6.0", + "bitflags", "core-foundation", - "system-configuration-sys 0.6.0", -] - -[[package]] -name = "system-configuration-sys" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" -dependencies = [ - "core-foundation-sys", - "libc", + "system-configuration-sys", ] [[package]] @@ -7349,7 +6471,6 @@ dependencies = [ name = "tendermint-script" version = "1.1.0" dependencies = [ - "serde", "serde_cbor", "serde_json", "sp1-build", @@ -7452,7 +6573,7 @@ dependencies = [ [[package]] name = "tiny-keccak" version = "2.0.2" -source = "git+https://github.com/sp1-patches/tiny-keccak?branch=patch-v2.0.2#bf0b28f63510a90c7b6c21ac6ff461c93ecd2331" +source = "git+https://github.com/sp1-patches/tiny-keccak?tag=tiny_keccak-v2.0.2-patch-v1#bf0b28f63510a90c7b6c21ac6ff461c93ecd2331" dependencies = [ "cfg-if", "crunchy", @@ -7536,26 +6657,11 @@ dependencies = [ "tokio", ] -[[package]] -name = "toml" -version = "0.8.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" -dependencies = [ - "serde", - "serde_spanned", - "toml_datetime", - "toml_edit 0.22.22", -] - [[package]] name = "toml_datetime" version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" -dependencies = [ - "serde", -] [[package]] name = "toml_edit" @@ -7575,8 +6681,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" dependencies = [ "indexmap 2.6.0", - "serde", - "serde_spanned", "toml_datetime", "winnow 0.6.20", ] @@ -7655,16 +6759,6 @@ dependencies = [ "tracing-subscriber", ] -[[package]] -name = "tracing-futures" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" -dependencies = [ - "pin-project", - "tracing", -] - [[package]] name = "tracing-log" version = "0.2.0" @@ -7709,11 +6803,11 @@ dependencies = [ "async-trait", "axum", "futures", - "http 1.1.0", + "http", "http-body-util", - "hyper 1.5.0", + "hyper", "prost 0.13.3", - "reqwest 0.12.8", + "reqwest", "serde", "serde_json", "thiserror", @@ -7791,12 +6885,6 @@ version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" -[[package]] -name = "untrusted" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" - [[package]] name = "untrusted" version = "0.9.0" @@ -7820,16 +6908,6 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" -[[package]] -name = "uuid" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" -dependencies = [ - "getrandom", - "serde", -] - [[package]] name = "valuable" version = "0.1.0" @@ -7879,16 +6957,6 @@ dependencies = [ "libc", ] -[[package]] -name = "walkdir" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" -dependencies = [ - "same-file", - "winapi-util", -] - [[package]] name = "want" version = "0.3.1" @@ -8029,15 +7097,6 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" -[[package]] -name = "winapi-util" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" -dependencies = [ - "windows-sys 0.59.0", -] - [[package]] name = "winapi-x86_64-pc-windows-gnu" version = "0.4.0" @@ -8259,35 +7318,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "winreg" -version = "0.50.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] - -[[package]] -name = "ws_stream_wasm" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7999f5f4217fe3818726b66257a4475f71e74ffd190776ad053fa159e50737f5" -dependencies = [ - "async_io_stream", - "futures", - "js-sys", - "log", - "pharos", - "rustc_version 0.4.1", - "send_wrapper 0.6.0", - "thiserror", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - [[package]] name = "wyz" version = "0.5.1" @@ -8368,14 +7398,14 @@ dependencies = [ [[patch.unused]] name = "ecdsa" version = "0.16.8" -source = "git+https://github.com/sp1-patches/signatures?branch=ratan/secp256k1-add-fixes-v0.16.8#cdeab4f0ed0d715ceae3fc6d09d16ec3ae41ead7" +source = "git+https://github.com/sp1-patches/signatures?tag=ecdsa-v0.16.8-patch-v1#aad9626d51e830729969220eee44de082ff97d53" [[patch.unused]] name = "sha2" version = "0.10.6" -source = "git+https://github.com/sp1-patches/RustCrypto-hashes?branch=patch-sha2-v0.10.6#e5f8b7eaaa9801503bd998932a52b65848eee234" +source = "git+https://github.com/sp1-patches/RustCrypto-hashes?tag=sha2-v0.10.6-patch-v1#e5f8b7eaaa9801503bd998932a52b65848eee234" [[patch.unused]] name = "sha2" version = "0.9.8" -source = "git+https://github.com/sp1-patches/RustCrypto-hashes?branch=patch-sha2-v0.9.8#afdbfb09c325f8a69c01d540ec9a261e3637725d" +source = "git+https://github.com/sp1-patches/RustCrypto-hashes?tag=sha2-v0.9.8-patch-v1#afdbfb09c325f8a69c01d540ec9a261e3637725d" From 802477a6040deec9eff6382840f6758d489c902f Mon Sep 17 00:00:00 2001 From: Yuwen Zhang Date: Fri, 1 Nov 2024 14:09:37 -0700 Subject: [PATCH 05/14] sign_hash > sign_message --- Cargo.lock | 1722 +++++++++++++++++++++++---- crates/sdk/Cargo.toml | 11 +- crates/sdk/src/network/auth.rs | 5 +- examples/Cargo.lock | 2015 ++++++++++++++++++++++++++------ 4 files changed, 3139 insertions(+), 614 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 726ac5e56..4dbba0882 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,6 +2,16 @@ # It is not intended for manual editing. version = 3 +[[package]] +name = "Inflector" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" +dependencies = [ + "lazy_static", + "regex", +] + [[package]] name = "addchain" version = "0.2.0" @@ -45,7 +55,18 @@ checksum = "884391ef1066acaa41e766ba8f596341b96e93ce34f9a43e7d24bf0a0eaf0561" dependencies = [ "aes-soft", "aesni", - "cipher", + "cipher 0.2.5", +] + +[[package]] +name = "aes" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" +dependencies = [ + "cfg-if", + "cipher 0.4.4", + "cpufeatures", ] [[package]] @@ -55,9 +76,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5278b5fabbb9bd46e24aa69b2fdea62c99088e0a950a9be40e3e0101298f88da" dependencies = [ "aead", - "aes", - "cipher", - "ctr", + "aes 0.6.0", + "cipher 0.2.5", + "ctr 0.6.0", "ghash", "subtle", ] @@ -68,7 +89,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be14c7498ea50828a38d0e24a765ed2effe92a705885b57d029cd67d45744072" dependencies = [ - "cipher", + "cipher 0.2.5", "opaque-debug", ] @@ -78,7 +99,7 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea2e11f5e94c2f7d386164cc2aa1f97823fed6f259e486940a71c174dd01b0ce" dependencies = [ - "cipher", + "cipher 0.2.5", "opaque-debug", ] @@ -111,15 +132,17 @@ checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" [[package]] name = "alloy-consensus" -version = "0.3.6" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "629b62e38d471cc15fea534eb7283d2f8a4e8bdb1811bcc5d66dda6cfce6fae1" +checksum = "41ed961a48297c732a5d97ee321aa8bb5009ecadbcb077d8bec90cb54e651629" dependencies = [ "alloy-eips", - "alloy-primitives 0.8.10", + "alloy-primitives", "alloy-rlp", "alloy-serde", + "auto_impl", "c-kzg", + "derive_more", "serde", ] @@ -129,48 +152,61 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0069cf0642457f87a01a014f6dc29d5d893cd4fd8fddf0c3cdfad1bb3ebafc41" dependencies = [ - "alloy-primitives 0.8.10", + "alloy-primitives", "alloy-rlp", "serde", ] [[package]] name = "alloy-eip7702" -version = "0.1.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea59dc42102bc9a1905dc57901edc6dd48b9f38115df86c7d252acba70d71d04" +checksum = "64ffc577390ce50234e02d841214b3dc0bea6aaaae8e04bbf3cb82e9a45da9eb" dependencies = [ - "alloy-primitives 0.8.10", + "alloy-primitives", "alloy-rlp", + "derive_more", "serde", ] [[package]] name = "alloy-eips" -version = "0.3.6" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f923dd5fca5f67a43d81ed3ebad0880bd41f6dd0ada930030353ac356c54cd0f" +checksum = "b69e06cf9c37be824b9d26d6d101114fdde6af0c87de2828b414c05c4b3daa71" dependencies = [ "alloy-eip2930", "alloy-eip7702", - "alloy-primitives 0.8.10", + "alloy-primitives", "alloy-rlp", "alloy-serde", "c-kzg", - "derive_more 1.0.0", + "derive_more", "once_cell", "serde", "sha2 0.10.8", ] +[[package]] +name = "alloy-json-abi" +version = "0.8.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31a0f0d51db8a1a30a4d98a9f90e090a94c8f44cb4d9eafc7e03aa6d00aae984" +dependencies = [ + "alloy-primitives", + "alloy-sol-type-parser", + "serde", + "serde_json", +] + [[package]] name = "alloy-json-rpc" -version = "0.3.6" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3c717b5298fad078cd3a418335b266eba91b511383ca9bd497f742d5975d5ab" +checksum = "af5979e0d5a7bf9c7eb79749121e8256e59021af611322aee56e77e20776b4b3" dependencies = [ - "alloy-primitives 0.8.10", - "alloy-sol-types 0.8.10", + "alloy-primitives", + "alloy-sol-types", "serde", "serde_json", "thiserror", @@ -179,19 +215,19 @@ dependencies = [ [[package]] name = "alloy-network" -version = "0.3.6" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb3705ce7d8602132bcf5ac7a1dd293a42adc2f183abf5907c30ac535ceca049" +checksum = "204237129086ce5dc17a58025e93739b01b45313841f98fa339eb1d780511e57" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-json-rpc", "alloy-network-primitives", - "alloy-primitives 0.8.10", + "alloy-primitives", "alloy-rpc-types-eth", "alloy-serde", "alloy-signer", - "alloy-sol-types 0.8.10", + "alloy-sol-types", "async-trait", "auto_impl", "futures-utils-wasm", @@ -200,38 +236,17 @@ dependencies = [ [[package]] name = "alloy-network-primitives" -version = "0.3.6" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94ad40869867ed2d9cd3842b1e800889e5b49e6b92da346e93862b4a741bedf3" +checksum = "514f70ee2a953db21631cd817b13a1571474ec77ddc03d47616d5e8203489fde" dependencies = [ + "alloy-consensus", "alloy-eips", - "alloy-primitives 0.8.10", + "alloy-primitives", "alloy-serde", "serde", ] -[[package]] -name = "alloy-primitives" -version = "0.7.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccb3ead547f4532bc8af961649942f0b9c16ee9226e26caa3f38420651cc0bf4" -dependencies = [ - "alloy-rlp", - "bytes 1.8.0", - "cfg-if", - "const-hex", - "derive_more 0.99.18", - "hex-literal", - "itoa", - "k256", - "keccak-asm", - "proptest", - "rand 0.8.5", - "ruint", - "serde", - "tiny-keccak", -] - [[package]] name = "alloy-primitives" version = "0.8.10" @@ -242,7 +257,7 @@ dependencies = [ "bytes 1.8.0", "cfg-if", "const-hex", - "derive_more 1.0.0", + "derive_more", "foldhash", "hashbrown 0.15.0", "hex-literal", @@ -284,20 +299,18 @@ dependencies = [ [[package]] name = "alloy-rpc-types-eth" -version = "0.3.6" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83aa984386deda02482660aa31cb8ca1e63d533f1c31a52d7d181ac5ec68e9b8" +checksum = "00b034779a4850b4b03f5be5ea674a1cf7d746b2da762b34d1860ab45e48ca27" dependencies = [ "alloy-consensus", "alloy-eips", "alloy-network-primitives", - "alloy-primitives 0.8.10", + "alloy-primitives", "alloy-rlp", "alloy-serde", - "alloy-sol-types 0.8.10", - "cfg-if", - "derive_more 1.0.0", - "hashbrown 0.14.5", + "alloy-sol-types", + "derive_more", "itertools 0.13.0", "serde", "serde_json", @@ -305,22 +318,22 @@ dependencies = [ [[package]] name = "alloy-serde" -version = "0.3.6" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "731f75ec5d383107fd745d781619bd9cedf145836c51ecb991623d41278e71fa" +checksum = "028e72eaa9703e4882344983cfe7636ce06d8cce104a78ea62fd19b46659efc4" dependencies = [ - "alloy-primitives 0.8.10", + "alloy-primitives", "serde", "serde_json", ] [[package]] name = "alloy-signer" -version = "0.3.6" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "307324cca94354cd654d6713629f0383ec037e1ff9e3e3d547212471209860c0" +checksum = "592c185d7100258c041afac51877660c7bf6213447999787197db4842f0e938e" dependencies = [ - "alloy-primitives 0.8.10", + "alloy-primitives", "async-trait", "auto_impl", "elliptic-curve", @@ -330,13 +343,13 @@ dependencies = [ [[package]] name = "alloy-signer-local" -version = "0.3.6" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fabe917ab1778e760b4701628d1cae8e028ee9d52ac6307de4e1e9286ab6b5f" +checksum = "6614f02fc1d5b079b2a4a5320018317b506fd0a6d67c1fd5542a71201724986c" dependencies = [ "alloy-consensus", "alloy-network", - "alloy-primitives 0.8.10", + "alloy-primitives", "alloy-signer", "async-trait", "k256", @@ -344,59 +357,27 @@ dependencies = [ "thiserror", ] -[[package]] -name = "alloy-sol-macro" -version = "0.7.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b40397ddcdcc266f59f959770f601ce1280e699a91fc1862f29cef91707cd09" -dependencies = [ - "alloy-sol-macro-expander 0.7.7", - "alloy-sol-macro-input 0.7.7", - "proc-macro-error", - "proc-macro2", - "quote", - "syn 2.0.85", -] - [[package]] name = "alloy-sol-macro" version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "841eabaa4710f719fddbc24c95d386eae313f07e6da4babc25830ee37945be0c" dependencies = [ - "alloy-sol-macro-expander 0.8.10", - "alloy-sol-macro-input 0.8.10", + "alloy-sol-macro-expander", + "alloy-sol-macro-input", "proc-macro-error2", "proc-macro2", "quote", "syn 2.0.85", ] -[[package]] -name = "alloy-sol-macro-expander" -version = "0.7.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "867a5469d61480fea08c7333ffeca52d5b621f5ca2e44f271b117ec1fc9a0525" -dependencies = [ - "alloy-sol-macro-input 0.7.7", - "const-hex", - "heck", - "indexmap 2.6.0", - "proc-macro-error", - "proc-macro2", - "quote", - "syn 2.0.85", - "syn-solidity 0.7.7", - "tiny-keccak", -] - [[package]] name = "alloy-sol-macro-expander" version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6672337f19d837b9f7073c45853aeb528ed9f7dd6a4154ce683e9e5cb7794014" dependencies = [ - "alloy-sol-macro-input 0.8.10", + "alloy-sol-macro-input", "const-hex", "heck", "indexmap 2.6.0", @@ -404,25 +385,10 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.85", - "syn-solidity 0.8.10", + "syn-solidity", "tiny-keccak", ] -[[package]] -name = "alloy-sol-macro-input" -version = "0.7.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e482dc33a32b6fadbc0f599adea520bd3aaa585c141a80b404d0a3e3fa72528" -dependencies = [ - "const-hex", - "dunce", - "heck", - "proc-macro2", - "quote", - "syn 2.0.85", - "syn-solidity 0.7.7", -] - [[package]] name = "alloy-sol-macro-input" version = "0.8.10" @@ -435,19 +401,17 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.85", - "syn-solidity 0.8.10", + "syn-solidity", ] [[package]] -name = "alloy-sol-types" -version = "0.7.7" +name = "alloy-sol-type-parser" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a91ca40fa20793ae9c3841b83e74569d1cc9af29a2f5237314fd3452d51e38c7" +checksum = "5b853d42292dbb159671a3edae3b2750277ff130f32b726fe07dc2b17aa6f2b5" dependencies = [ - "alloy-primitives 0.7.7", - "alloy-sol-macro 0.7.7", - "const-hex", "serde", + "winnow 0.6.20", ] [[package]] @@ -456,9 +420,11 @@ version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa828bb1b9a6dc52208fbb18084fb9ce2c30facc2bfda6a5d922349b4990354f" dependencies = [ - "alloy-primitives 0.8.10", - "alloy-sol-macro 0.8.10", + "alloy-json-abi", + "alloy-primitives", + "alloy-sol-macro", "const-hex", + "serde", ] [[package]] @@ -685,6 +651,15 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" +[[package]] +name = "ascii-canvas" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8824ecca2e851cec16968d54a01dd372ef8f95b244fb84b84e70128be347c3c6" +dependencies = [ + "term", +] + [[package]] name = "async-attributes" version = "1.1.2" @@ -792,7 +767,7 @@ dependencies = [ "futures-core", "futures-io", "futures-lite 2.4.0", - "gloo-timers", + "gloo-timers 0.3.0", "kv-log-macro", "log", "memchr", @@ -865,7 +840,18 @@ dependencies = [ "futures-util", "log", "pin-project-lite", - "tungstenite", + "tungstenite 0.18.0", +] + +[[package]] +name = "async_io_stream" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6d7b9decdf35d8908a7e3ef02f64c5e9b1695e230154c0e8de3969142d9b94c" +dependencies = [ + "futures", + "pharos", + "rustc_version 0.4.1", ] [[package]] @@ -902,9 +888,9 @@ dependencies = [ "bytes 1.8.0", "futures-util", "http 1.1.0", - "http-body", + "http-body 1.0.1", "http-body-util", - "hyper", + "hyper 1.5.0", "hyper-util", "itoa", "matchit", @@ -935,7 +921,7 @@ dependencies = [ "bytes 1.8.0", "futures-util", "http 1.1.0", - "http-body", + "http-body 1.0.1", "http-body-util", "mime", "pin-project-lite", @@ -1000,6 +986,12 @@ version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" +[[package]] +name = "base64" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + [[package]] name = "base64" version = "0.22.1" @@ -1012,6 +1004,12 @@ version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" +[[package]] +name = "bech32" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445" + [[package]] name = "bincode" version = "1.3.3" @@ -1027,7 +1025,7 @@ version = "0.70.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f49d8fed880d473ea71efb9bf597651e77201bdd4893efe54c9e5d65ae04ce6f" dependencies = [ - "bitflags", + "bitflags 2.6.0", "cexpr", "clang-sys", "itertools 0.13.0", @@ -1056,6 +1054,12 @@ version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + [[package]] name = "bitflags" version = "2.6.0" @@ -1091,7 +1095,7 @@ checksum = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780" dependencies = [ "arrayref", "arrayvec", - "constant_time_eq", + "constant_time_eq 0.3.1", ] [[package]] @@ -1150,6 +1154,16 @@ dependencies = [ "zeroize", ] +[[package]] +name = "bs58" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" +dependencies = [ + "sha2 0.10.8", + "tinyvec", +] + [[package]] name = "bumpalo" version = "3.16.0" @@ -1203,6 +1217,27 @@ dependencies = [ "serde", ] +[[package]] +name = "bzip2" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8" +dependencies = [ + "bzip2-sys", + "libc", +] + +[[package]] +name = "bzip2-sys" +version = "0.1.11+1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc" +dependencies = [ + "cc", + "libc", + "pkg-config", +] + [[package]] name = "c-kzg" version = "1.0.3" @@ -1336,6 +1371,16 @@ dependencies = [ "generic-array 0.14.7", ] +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common", + "inout", +] + [[package]] name = "clang-sys" version = "1.8.1" @@ -1387,6 +1432,58 @@ version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" +[[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 0.12.1", + "k256", + "serde", + "sha2 0.10.8", + "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 0.12.1", + "once_cell", + "pbkdf2 0.12.2", + "rand 0.8.5", + "sha2 0.10.8", + "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 0.14.7", + "hex", + "ripemd", + "serde", + "serde_derive", + "sha2 0.10.8", + "sha3", + "thiserror", +] + [[package]] name = "colorchoice" version = "1.0.3" @@ -1442,15 +1539,15 @@ checksum = "373e9fafaa20882876db20562275ff58d50e0caa2590077fe7ce7bef90211d0d" [[package]] name = "constant_time_eq" -version = "0.3.1" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" +checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" [[package]] -name = "convert_case" -version = "0.4.0" +name = "constant_time_eq" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" +checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" [[package]] name = "cookie" @@ -1500,6 +1597,15 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dcb25d077389e53838a8158c8e99174c5a9d902dee4904320db714f3c653ffba" +[[package]] +name = "crc32fast" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" +dependencies = [ + "cfg-if", +] + [[package]] name = "criterion" version = "0.5.1" @@ -1626,7 +1732,16 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fb4a30d54f7443bf3d6191dcd486aca19e67cb3c49fa7a06a319966346707e7f" dependencies = [ - "cipher", + "cipher 0.2.5", +] + +[[package]] +name = "ctr" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" +dependencies = [ + "cipher 0.4.4", ] [[package]] @@ -1809,6 +1924,12 @@ dependencies = [ "rustversion", ] +[[package]] +name = "data-encoding" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" + [[package]] name = "der" version = "0.7.9" @@ -1839,19 +1960,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "derive_more" -version = "0.99.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce" -dependencies = [ - "convert_case", - "proc-macro2", - "quote", - "rustc_version 0.4.1", - "syn 2.0.85", -] - [[package]] name = "derive_more" version = "1.0.0" @@ -1999,6 +2107,15 @@ dependencies = [ "zeroize", ] +[[package]] +name = "ena" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d248bdd43ce613d87415282f69b9bb99d947d290b10962dd6c56233312c2ad5" +dependencies = [ + "log", +] + [[package]] name = "encode_unicode" version = "0.3.6" @@ -2020,6 +2137,24 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "enr" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a3d8dc56e02f954cac8eb489772c552c473346fc34f67412bb6244fd647f7e4" +dependencies = [ + "base64 0.21.7", + "bytes 1.8.0", + "hex", + "k256", + "log", + "rand 0.8.5", + "rlp", + "serde", + "sha3", + "zeroize", +] + [[package]] name = "enum-map" version = "2.7.3" @@ -2058,12 +2193,330 @@ dependencies = [ ] [[package]] -name = "event-listener" -version = "2.5.3" +name = "eth-keystore" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" - -[[package]] +checksum = "1fda3bf123be441da5260717e0661c25a2fd9cb2b2c1d20bf2e05580047158ab" +dependencies = [ + "aes 0.8.4", + "ctr 0.9.2", + "digest 0.10.7", + "hex", + "hmac 0.12.1", + "pbkdf2 0.11.0", + "rand 0.8.5", + "scrypt", + "serde", + "serde_json", + "sha2 0.10.8", + "sha3", + "thiserror", + "uuid", +] + +[[package]] +name = "ethabi" +version = "18.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7413c5f74cc903ea37386a8965a936cbeb334bd270862fdece542c1b2dcbc898" +dependencies = [ + "ethereum-types", + "hex", + "once_cell", + "regex", + "serde", + "serde_json", + "sha3", + "thiserror", + "uint", +] + +[[package]] +name = "ethbloom" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c22d4b5885b6aa2fe5e8b9329fb8d232bf739e434e6b87347c63bdd00c120f60" +dependencies = [ + "crunchy", + "fixed-hash", + "impl-codec", + "impl-rlp", + "impl-serde", + "scale-info", + "tiny-keccak", +] + +[[package]] +name = "ethereum-types" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02d215cbf040552efcbe99a38372fe80ab9d00268e20012b79fcd0f073edd8ee" +dependencies = [ + "ethbloom", + "fixed-hash", + "impl-codec", + "impl-rlp", + "impl-serde", + "primitive-types", + "scale-info", + "uint", +] + +[[package]] +name = "ethers" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "816841ea989f0c69e459af1cf23a6b0033b19a55424a1ea3a30099becdb8dec0" +dependencies = [ + "ethers-addressbook", + "ethers-contract", + "ethers-core", + "ethers-etherscan", + "ethers-middleware", + "ethers-providers", + "ethers-signers", + "ethers-solc", +] + +[[package]] +name = "ethers-addressbook" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5495afd16b4faa556c3bba1f21b98b4983e53c1755022377051a975c3b021759" +dependencies = [ + "ethers-core", + "once_cell", + "serde", + "serde_json", +] + +[[package]] +name = "ethers-contract" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fceafa3578c836eeb874af87abacfb041f92b4da0a78a5edd042564b8ecdaaa" +dependencies = [ + "const-hex", + "ethers-contract-abigen", + "ethers-contract-derive", + "ethers-core", + "ethers-providers", + "futures-util", + "once_cell", + "pin-project", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "ethers-contract-abigen" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04ba01fbc2331a38c429eb95d4a570166781f14290ef9fdb144278a90b5a739b" +dependencies = [ + "Inflector", + "const-hex", + "dunce", + "ethers-core", + "ethers-etherscan", + "eyre", + "prettyplease", + "proc-macro2", + "quote", + "regex", + "reqwest 0.11.27", + "serde", + "serde_json", + "syn 2.0.85", + "toml", + "walkdir", +] + +[[package]] +name = "ethers-contract-derive" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87689dcabc0051cde10caaade298f9e9093d65f6125c14575db3fd8c669a168f" +dependencies = [ + "Inflector", + "const-hex", + "ethers-contract-abigen", + "ethers-core", + "proc-macro2", + "quote", + "serde_json", + "syn 2.0.85", +] + +[[package]] +name = "ethers-core" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82d80cc6ad30b14a48ab786523af33b37f28a8623fc06afd55324816ef18fb1f" +dependencies = [ + "arrayvec", + "bytes 1.8.0", + "cargo_metadata", + "chrono", + "const-hex", + "elliptic-curve", + "ethabi", + "generic-array 0.14.7", + "k256", + "num_enum 0.7.3", + "once_cell", + "open-fastrlp", + "rand 0.8.5", + "rlp", + "serde", + "serde_json", + "strum", + "syn 2.0.85", + "tempfile", + "thiserror", + "tiny-keccak", + "unicode-xid", +] + +[[package]] +name = "ethers-etherscan" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e79e5973c26d4baf0ce55520bd732314328cabe53193286671b47144145b9649" +dependencies = [ + "chrono", + "ethers-core", + "reqwest 0.11.27", + "semver 1.0.23", + "serde", + "serde_json", + "thiserror", + "tracing", +] + +[[package]] +name = "ethers-middleware" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48f9fdf09aec667c099909d91908d5eaf9be1bd0e2500ba4172c1d28bfaa43de" +dependencies = [ + "async-trait", + "auto_impl", + "ethers-contract", + "ethers-core", + "ethers-etherscan", + "ethers-providers", + "ethers-signers", + "futures-channel", + "futures-locks", + "futures-util", + "instant", + "reqwest 0.11.27", + "serde", + "serde_json", + "thiserror", + "tokio", + "tracing", + "tracing-futures", + "url", +] + +[[package]] +name = "ethers-providers" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6434c9a33891f1effc9c75472e12666db2fa5a0fec4b29af6221680a6fe83ab2" +dependencies = [ + "async-trait", + "auto_impl", + "base64 0.21.7", + "bytes 1.8.0", + "const-hex", + "enr", + "ethers-core", + "futures-core", + "futures-timer", + "futures-util", + "hashers", + "http 0.2.12", + "instant", + "jsonwebtoken", + "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-signers" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "228875491c782ad851773b652dd8ecac62cda8571d3bc32a5853644dd26766c2" +dependencies = [ + "async-trait", + "coins-bip32", + "coins-bip39", + "const-hex", + "elliptic-curve", + "eth-keystore", + "ethers-core", + "rand 0.8.5", + "sha2 0.10.8", + "thiserror", + "tracing", +] + +[[package]] +name = "ethers-solc" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66244a771d9163282646dbeffe0e6eca4dda4146b6498644e678ac6089b11edd" +dependencies = [ + "cfg-if", + "const-hex", + "dirs", + "dunce", + "ethers-core", + "glob", + "home", + "md-5", + "num_cpus", + "once_cell", + "path-slash", + "rayon", + "regex", + "semver 1.0.23", + "serde", + "serde_json", + "solang-parser", + "svm-rs", + "thiserror", + "tiny-keccak", + "tokio", + "tracing", + "walkdir", + "yansi 0.5.1", +] + +[[package]] +name = "event-listener" +version = "2.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" + +[[package]] name = "event-listener" version = "5.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -2184,6 +2637,16 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" +[[package]] +name = "flate2" +version = "1.0.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1b589b4dc103969ad3cf85c950899926ec64300a1a46d76c03a6072957036f0" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + [[package]] name = "flume" version = "0.9.2" @@ -2231,6 +2694,16 @@ 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" @@ -2313,6 +2786,16 @@ dependencies = [ "pin-project-lite", ] +[[package]] +name = "futures-locks" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45ec6fe3675af967e67c5536c0b9d44e34e6c52f86bedc4ea49c5317b8e94d06" +dependencies = [ + "futures-channel", + "futures-task", +] + [[package]] name = "futures-macro" version = "0.3.31" @@ -2336,6 +2819,16 @@ version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" +[[package]] +name = "futures-timer" +version = "3.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" +dependencies = [ + "gloo-timers 0.2.6", + "send_wrapper 0.4.0", +] + [[package]] name = "futures-util" version = "0.3.31" @@ -2360,6 +2853,15 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42012b0f064e01aa58b545fe3727f90f7dd4020f4a3ea735b50344965f5a57e9" +[[package]] +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] + [[package]] name = "gcd" version = "2.3.0" @@ -2431,7 +2933,7 @@ version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b903b73e45dc0c6c596f2d37eccece7c1c8bb6e4407b001096387c63d0d93724" dependencies = [ - "bitflags", + "bitflags 2.6.0", "libc", "libgit2-sys", "log", @@ -2444,6 +2946,18 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" +[[package]] +name = "gloo-timers" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c" +dependencies = [ + "futures-channel", + "futures-core", + "js-sys", + "wasm-bindgen", +] + [[package]] name = "gloo-timers" version = "0.3.0" @@ -2500,6 +3014,25 @@ dependencies = [ "subtle", ] +[[package]] +name = "h2" +version = "0.3.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" +dependencies = [ + "bytes 1.8.0", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http 0.2.12", + "indexmap 2.6.0", + "slab", + "tokio", + "tokio-util", + "tracing", +] + [[package]] name = "h2" version = "0.4.6" @@ -2581,6 +3114,15 @@ dependencies = [ "serde", ] +[[package]] +name = "hashers" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2bca93b15ea5a746f220e56587f71e73c6165eab783df9e26590069953e3c30" +dependencies = [ + "fxhash", +] + [[package]] name = "heck" version = "0.5.0" @@ -2643,6 +3185,15 @@ dependencies = [ "digest 0.10.7", ] +[[package]] +name = "home" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" +dependencies = [ + "windows-sys 0.52.0", +] + [[package]] name = "http" version = "0.2.12" @@ -2665,6 +3216,17 @@ dependencies = [ "itoa", ] +[[package]] +name = "http-body" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" +dependencies = [ + "bytes 1.8.0", + "http 0.2.12", + "pin-project-lite", +] + [[package]] name = "http-body" version = "1.0.1" @@ -2684,7 +3246,7 @@ dependencies = [ "bytes 1.8.0", "futures-util", "http 1.1.0", - "http-body", + "http-body 1.0.1", "pin-project-lite", ] @@ -2724,18 +3286,42 @@ dependencies = [ "url", ] -[[package]] -name = "httparse" -version = "1.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" - -[[package]] -name = "httpdate" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" - +[[package]] +name = "httparse" +version = "1.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" + +[[package]] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + +[[package]] +name = "hyper" +version = "0.14.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c08302e8fa335b151b788c775ff56e7a03ae64ff85c548ee820fecb70356e85" +dependencies = [ + "bytes 1.8.0", + "futures-channel", + "futures-core", + "futures-util", + "h2 0.3.26", + "http 0.2.12", + "http-body 0.4.6", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", + "want", +] + [[package]] name = "hyper" version = "1.5.0" @@ -2745,9 +3331,9 @@ dependencies = [ "bytes 1.8.0", "futures-channel", "futures-util", - "h2", + "h2 0.4.6", "http 1.1.0", - "http-body", + "http-body 1.0.1", "httparse", "httpdate", "itoa", @@ -2757,6 +3343,20 @@ dependencies = [ "want", ] +[[package]] +name = "hyper-rustls" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" +dependencies = [ + "futures-util", + "http 0.2.12", + "hyper 0.14.31", + "rustls 0.21.12", + "tokio", + "tokio-rustls 0.24.1", +] + [[package]] name = "hyper-rustls" version = "0.27.3" @@ -2765,12 +3365,12 @@ checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333" dependencies = [ "futures-util", "http 1.1.0", - "hyper", + "hyper 1.5.0", "hyper-util", "rustls 0.23.16", "rustls-pki-types", "tokio", - "tokio-rustls", + "tokio-rustls 0.26.0", "tower-service", "webpki-roots 0.26.6", ] @@ -2781,7 +3381,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3203a961e5c83b6f5498933e78b6b263e208c197b63e9c6c53cc82ffd3f63793" dependencies = [ - "hyper", + "hyper 1.5.0", "hyper-util", "pin-project-lite", "tokio", @@ -2796,7 +3396,7 @@ checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" dependencies = [ "bytes 1.8.0", "http-body-util", - "hyper", + "hyper 1.5.0", "hyper-util", "native-tls", "tokio", @@ -2814,8 +3414,8 @@ dependencies = [ "futures-channel", "futures-util", "http 1.1.0", - "http-body", - "hyper", + "http-body 1.0.1", + "hyper 1.5.0", "pin-project-lite", "socket2", "tokio", @@ -2871,6 +3471,24 @@ dependencies = [ "parity-scale-codec", ] +[[package]] +name = "impl-rlp" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f28220f89297a075ddc7245cd538076ee98b01f2a9c23a53a4f1105d5a322808" +dependencies = [ + "rlp", +] + +[[package]] +name = "impl-serde" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc88fc67028ae3db0c853baa36269d398d5f45b6982f95549ff5def78c935cd" +dependencies = [ + "serde", +] + [[package]] name = "impl-trait-for-tuples" version = "0.2.2" @@ -2928,6 +3546,15 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "64e9829a50b42bb782c1df523f78d332fe371b10c661e78b7a3c34b0198e9fac" +[[package]] +name = "inout" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" +dependencies = [ + "generic-array 0.14.7", +] + [[package]] name = "instant" version = "0.1.13" @@ -2992,6 +3619,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" +dependencies = [ + "either", +] + [[package]] name = "itertools" version = "0.12.1" @@ -3034,6 +3670,20 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "jsonwebtoken" +version = "8.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378" +dependencies = [ + "base64 0.21.7", + "pem", + "ring 0.16.20", + "serde", + "serde_json", + "simple_asn1", +] + [[package]] name = "jubjub" version = "0.9.0" @@ -3090,6 +3740,36 @@ dependencies = [ "log", ] +[[package]] +name = "lalrpop" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55cb077ad656299f160924eb2912aa147d7339ea7d69e1b5517326fdcec3c1ca" +dependencies = [ + "ascii-canvas", + "bit-set", + "ena", + "itertools 0.11.0", + "lalrpop-util", + "petgraph", + "regex", + "regex-syntax 0.8.5", + "string_cache", + "term", + "tiny-keccak", + "unicode-xid", + "walkdir", +] + +[[package]] +name = "lalrpop-util" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "507460a910eb7b32ee961886ff48539633b788a36b65692b95f225b844c82553" +dependencies = [ + "regex-automata 0.4.8", +] + [[package]] name = "lazy_static" version = "1.5.0" @@ -3149,7 +3829,7 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "bitflags", + "bitflags 2.6.0", "libc", ] @@ -3214,6 +3894,16 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" +[[package]] +name = "md-5" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" +dependencies = [ + "cfg-if", + "digest 0.10.7", +] + [[package]] name = "memchr" version = "2.7.4" @@ -3292,13 +3982,19 @@ dependencies = [ "tempfile", ] +[[package]] +name = "new_debug_unreachable" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" + [[package]] name = "nix" version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" dependencies = [ - "bitflags", + "bitflags 2.6.0", "cfg-if", "cfg_aliases", "libc", @@ -3463,7 +4159,16 @@ version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9" dependencies = [ - "num_enum_derive", + "num_enum_derive 0.5.11", +] + +[[package]] +name = "num_enum" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" +dependencies = [ + "num_enum_derive 0.7.3", ] [[package]] @@ -3478,6 +4183,18 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "num_enum_derive" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" +dependencies = [ + "proc-macro-crate 3.2.0", + "proc-macro2", + "quote", + "syn 2.0.85", +] + [[package]] name = "num_threads" version = "0.1.7" @@ -3520,13 +4237,38 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" +[[package]] +name = "open-fastrlp" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "786393f80485445794f6043fd3138854dd109cc6c4bd1a6383db304c9ce9b9ce" +dependencies = [ + "arrayvec", + "auto_impl", + "bytes 1.8.0", + "ethereum-types", + "open-fastrlp-derive", +] + +[[package]] +name = "open-fastrlp-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "003b2be5c6c53c1cfeb0a238b8a1c3915cd410feb684457a36c10038f764bb1c" +dependencies = [ + "bytes 1.8.0", + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "openssl" version = "0.10.68" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" dependencies = [ - "bitflags", + "bitflags 2.6.0", "cfg-if", "foreign-types", "libc", @@ -3870,6 +4612,17 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "password-hash" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7676374caaee8a325c9e7a2ae557f216c5563a171d6997b0ef8a65af35147700" +dependencies = [ + "base64ct", + "rand_core 0.6.4", + "subtle", +] + [[package]] name = "pasta_curves" version = "0.4.1" @@ -3906,6 +4659,43 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" +[[package]] +name = "path-slash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e91099d4268b0e11973f036e885d652fb0b21fedcf69738c627f94db6a44f42" + +[[package]] +name = "pbkdf2" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" +dependencies = [ + "digest 0.10.7", + "hmac 0.12.1", + "password-hash", + "sha2 0.10.8", +] + +[[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 0.12.1", +] + +[[package]] +name = "pem" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8" +dependencies = [ + "base64 0.13.1", +] + [[package]] name = "percent-encoding" version = "2.3.1" @@ -3933,6 +4723,67 @@ dependencies = [ "indexmap 2.6.0", ] +[[package]] +name = "pharos" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9567389417feee6ce15dd6527a8a1ecac205ef62c2932bcf3d9f6fc5b78b414" +dependencies = [ + "futures", + "rustc_version 0.4.1", +] + +[[package]] +name = "phf" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" +dependencies = [ + "phf_macros", + "phf_shared 0.11.2", +] + +[[package]] +name = "phf_generator" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0" +dependencies = [ + "phf_shared 0.11.2", + "rand 0.8.5", +] + +[[package]] +name = "phf_macros" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b" +dependencies = [ + "phf_generator", + "phf_shared 0.11.2", + "proc-macro2", + "quote", + "syn 2.0.85", +] + +[[package]] +name = "phf_shared" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" +dependencies = [ + "siphasher", +] + +[[package]] +name = "phf_shared" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" +dependencies = [ + "siphasher", +] + [[package]] name = "pin-project" version = "1.1.7" @@ -4073,6 +4924,12 @@ dependencies = [ "zerocopy", ] +[[package]] +name = "precomputed-hash" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" + [[package]] name = "prettyplease" version = "0.2.25" @@ -4105,6 +4962,9 @@ checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" dependencies = [ "fixed-hash", "impl-codec", + "impl-rlp", + "impl-serde", + "scale-info", "uint", ] @@ -4127,30 +4987,6 @@ dependencies = [ "toml_edit 0.22.22", ] -[[package]] -name = "proc-macro-error" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" -dependencies = [ - "proc-macro-error-attr", - "proc-macro2", - "quote", - "syn 1.0.109", - "version_check", -] - -[[package]] -name = "proc-macro-error-attr" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" -dependencies = [ - "proc-macro2", - "quote", - "version_check", -] - [[package]] name = "proc-macro-error-attr2" version = "2.0.0" @@ -4196,7 +5032,7 @@ checksum = "b4c2511913b88df1637da85cc8d96ec8e43a3f8bb8ccb71ee1ac240d6f3df58d" dependencies = [ "bit-set", "bit-vec", - "bitflags", + "bitflags 2.6.0", "lazy_static", "num-traits", "rand 0.8.5", @@ -4447,7 +5283,7 @@ version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f" dependencies = [ - "bitflags", + "bitflags 2.6.0", ] [[package]] @@ -4505,6 +5341,47 @@ version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" +[[package]] +name = "reqwest" +version = "0.11.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" +dependencies = [ + "base64 0.21.7", + "bytes 1.8.0", + "encoding_rs", + "futures-core", + "futures-util", + "h2 0.3.26", + "http 0.2.12", + "http-body 0.4.6", + "hyper 0.14.31", + "hyper-rustls 0.24.2", + "ipnet", + "js-sys", + "log", + "mime", + "once_cell", + "percent-encoding", + "pin-project-lite", + "rustls 0.21.12", + "rustls-pemfile 1.0.4", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper 0.1.2", + "system-configuration 0.5.1", + "tokio", + "tokio-rustls 0.24.1", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "webpki-roots 0.25.4", + "winreg", +] + [[package]] name = "reqwest" version = "0.12.9" @@ -4516,12 +5393,12 @@ dependencies = [ "encoding_rs", "futures-core", "futures-util", - "h2", + "h2 0.4.6", "http 1.1.0", - "http-body", + "http-body 1.0.1", "http-body-util", - "hyper", - "hyper-rustls", + "hyper 1.5.0", + "hyper-rustls 0.27.3", "hyper-tls", "hyper-util", "ipnet", @@ -4534,16 +5411,16 @@ dependencies = [ "pin-project-lite", "quinn", "rustls 0.23.16", - "rustls-pemfile", + "rustls-pemfile 2.2.0", "rustls-pki-types", "serde", "serde_json", "serde_urlencoded", "sync_wrapper 1.0.1", - "system-configuration", + "system-configuration 0.6.1", "tokio", "tokio-native-tls", - "tokio-rustls", + "tokio-rustls 0.26.0", "tokio-util", "tower-service", "url", @@ -4564,7 +5441,7 @@ dependencies = [ "anyhow", "async-trait", "http 1.1.0", - "reqwest", + "reqwest 0.12.9", "serde", "thiserror", "tower-service", @@ -4610,6 +5487,15 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "ripemd" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" +dependencies = [ + "digest 0.10.7", +] + [[package]] name = "rlp" version = "0.5.2" @@ -4617,9 +5503,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" dependencies = [ "bytes 1.8.0", + "rlp-derive", "rustc-hex", ] +[[package]] +name = "rlp-derive" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e33d7b2abe0c340d8797fe2907d3f20d3b5ea5908683618bfe80df7f621f672a" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "rrs-succinct" version = "0.1.0" @@ -4627,7 +5525,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3372685893a9f67d18e98e792d690017287fd17379a83d798d958e517d380fa9" dependencies = [ "downcast-rs", - "num_enum", + "num_enum 0.5.11", "paste", ] @@ -4730,7 +5628,7 @@ version = "0.38.38" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa260229e6538e52293eeb577aabd09945a09d6d9cc0fc550ed7529056c2e32a" dependencies = [ - "bitflags", + "bitflags 2.6.0", "errno", "libc", "linux-raw-sys", @@ -4746,10 +5644,22 @@ dependencies = [ "base64 0.13.1", "log", "ring 0.16.20", - "sct", + "sct 0.6.1", "webpki", ] +[[package]] +name = "rustls" +version = "0.21.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" +dependencies = [ + "log", + "ring 0.17.8", + "rustls-webpki 0.101.7", + "sct 0.7.1", +] + [[package]] name = "rustls" version = "0.23.16" @@ -4760,7 +5670,7 @@ dependencies = [ "once_cell", "ring 0.17.8", "rustls-pki-types", - "rustls-webpki", + "rustls-webpki 0.102.8", "subtle", "zeroize", ] @@ -4772,12 +5682,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fcaf18a4f2be7326cd874a5fa579fae794320a0f388d365dca7e480e55f83f8a" dependencies = [ "openssl-probe", - "rustls-pemfile", + "rustls-pemfile 2.2.0", "rustls-pki-types", "schannel", "security-framework", ] +[[package]] +name = "rustls-pemfile" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +dependencies = [ + "base64 0.21.7", +] + [[package]] name = "rustls-pemfile" version = "2.2.0" @@ -4793,6 +5712,16 @@ version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "16f1201b3c9a7ee8039bcadc17b7e605e2945b27eee7631788c1bd2b0643674b" +[[package]] +name = "rustls-webpki" +version = "0.101.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" +dependencies = [ + "ring 0.17.8", + "untrusted 0.9.0", +] + [[package]] name = "rustls-webpki" version = "0.102.8" @@ -4828,6 +5757,15 @@ version = "1.0.18" 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" +dependencies = [ + "cipher 0.4.4", +] + [[package]] name = "same-file" version = "1.0.6" @@ -4844,7 +5782,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1aa7ffc1c0ef49b0452c6e2986abf2b07743320641ffd5fc63d552458e3b779b" dependencies = [ "cfg-if", - "derive_more 1.0.0", + "derive_more", "parity-scale-codec", "scale-info-derive", ] @@ -4905,6 +5843,18 @@ dependencies = [ "syn 2.0.85", ] +[[package]] +name = "scrypt" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f9e24d2b632954ded8ab2ef9fea0a0c769ea56ea98bddbafbad22caeeadf45d" +dependencies = [ + "hmac 0.12.1", + "pbkdf2 0.11.0", + "salsa20", + "sha2 0.10.8", +] + [[package]] name = "sct" version = "0.6.1" @@ -4915,6 +5865,16 @@ dependencies = [ "untrusted 0.7.1", ] +[[package]] +name = "sct" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" +dependencies = [ + "ring 0.17.8", + "untrusted 0.9.0", +] + [[package]] name = "sdd" version = "3.0.4" @@ -4941,7 +5901,7 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags", + "bitflags 2.6.0", "core-foundation", "core-foundation-sys", "libc", @@ -5000,6 +5960,18 @@ dependencies = [ "pest", ] +[[package]] +name = "send_wrapper" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f638d531eccd6e23b980caf34876660d38e265409d8e99b397ab71eb3612fad0" + +[[package]] +name = "send_wrapper" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" + [[package]] name = "serde" version = "1.0.214" @@ -5053,6 +6025,15 @@ dependencies = [ "thiserror", ] +[[package]] +name = "serde_spanned" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" +dependencies = [ + "serde", +] + [[package]] name = "serde_urlencoded" version = "0.7.1" @@ -5216,6 +6197,24 @@ dependencies = [ "rand_core 0.6.4", ] +[[package]] +name = "simple_asn1" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085" +dependencies = [ + "num-bigint 0.4.6", + "num-traits", + "thiserror", + "time 0.3.36", +] + +[[package]] +name = "siphasher" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" + [[package]] name = "size" version = "0.4.1" @@ -5294,6 +6293,20 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "solang-parser" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c425ce1c59f4b154717592f0bdf4715c3a1d55058883622d3157e1f0908a5b26" +dependencies = [ + "itertools 0.11.0", + "lalrpop", + "lalrpop-util", + "phf", + "thiserror", + "unicode-xid", +] + [[package]] name = "sp1-build" version = "3.0.0" @@ -5320,7 +6333,7 @@ dependencies = [ "prettytable-rs", "rand 0.8.5", "regex", - "reqwest", + "reqwest 0.12.9", "rustc-demangle", "serde_json", "sp1-build", @@ -5330,7 +6343,7 @@ dependencies = [ "textwrap", "tokio", "vergen", - "yansi", + "yansi 1.0.1", ] [[package]] @@ -5469,7 +6482,7 @@ dependencies = [ "anyhow", "bincode", "clap", - "reqwest", + "reqwest 0.12.9", "serde", "serde_json", "slack-rust-rs", @@ -5712,16 +6725,17 @@ dependencies = [ name = "sp1-sdk" version = "3.0.0" dependencies = [ - "alloy-primitives 0.8.10", + "alloy-primitives", "alloy-signer", "alloy-signer-local", - "alloy-sol-types 0.7.7", + "alloy-sol-types", "anyhow", "async-trait", "backoff", "bincode", "cfg-if", "dirs", + "ethers", "futures", "hashbrown 0.14.5", "hex", @@ -5732,7 +6746,7 @@ dependencies = [ "p3-field", "p3-fri", "prost", - "reqwest", + "reqwest 0.12.9", "reqwest-middleware", "serde", "sp1-core-executor", @@ -5910,6 +6924,19 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "213701ba3370744dcd1a12960caa4843b3d68b4d1c0a5d575e0d65b2ee9d16c0" +[[package]] +name = "string_cache" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b" +dependencies = [ + "new_debug_unreachable", + "once_cell", + "parking_lot", + "phf_shared 0.10.0", + "precomputed-hash", +] + [[package]] name = "strsim" version = "0.10.0" @@ -5989,6 +7016,26 @@ dependencies = [ "web-sys", ] +[[package]] +name = "svm-rs" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11297baafe5fa0c99d5722458eac6a5e25c01eb1b8e5cd137f54079093daa7a4" +dependencies = [ + "dirs", + "fs2", + "hex", + "once_cell", + "reqwest 0.11.27", + "semver 1.0.23", + "serde", + "serde_json", + "sha2 0.10.8", + "thiserror", + "url", + "zip", +] + [[package]] name = "syn" version = "1.0.109" @@ -6011,18 +7058,6 @@ dependencies = [ "unicode-ident", ] -[[package]] -name = "syn-solidity" -version = "0.7.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c837dc8852cb7074e46b444afb81783140dab12c58867b49fb3898fbafedf7ea" -dependencies = [ - "paste", - "proc-macro2", - "quote", - "syn 2.0.85", -] - [[package]] name = "syn-solidity" version = "0.8.10" @@ -6065,15 +7100,36 @@ dependencies = [ "windows", ] +[[package]] +name = "system-configuration" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "system-configuration-sys 0.5.0", +] + [[package]] name = "system-configuration" version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ - "bitflags", + "bitflags 2.6.0", "core-foundation", - "system-configuration-sys", + "system-configuration-sys 0.6.0", +] + +[[package]] +name = "system-configuration-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" +dependencies = [ + "core-foundation-sys", + "libc", ] [[package]] @@ -6336,6 +7392,16 @@ dependencies = [ "tokio", ] +[[package]] +name = "tokio-rustls" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" +dependencies = [ + "rustls 0.21.12", + "tokio", +] + [[package]] name = "tokio-rustls" version = "0.26.0" @@ -6358,6 +7424,21 @@ dependencies = [ "tokio", ] +[[package]] +name = "tokio-tungstenite" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c" +dependencies = [ + "futures-util", + "log", + "rustls 0.21.12", + "tokio", + "tokio-rustls 0.24.1", + "tungstenite 0.20.1", + "webpki-roots 0.25.4", +] + [[package]] name = "tokio-util" version = "0.7.12" @@ -6371,11 +7452,26 @@ dependencies = [ "tokio", ] +[[package]] +name = "toml" +version = "0.8.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit 0.22.22", +] + [[package]] name = "toml_datetime" version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" +dependencies = [ + "serde", +] [[package]] name = "toml_edit" @@ -6395,6 +7491,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" dependencies = [ "indexmap 2.6.0", + "serde", + "serde_spanned", "toml_datetime", "winnow 0.6.20", ] @@ -6410,21 +7508,21 @@ dependencies = [ "axum", "base64 0.22.1", "bytes 1.8.0", - "h2", + "h2 0.4.6", "http 1.1.0", - "http-body", + "http-body 1.0.1", "http-body-util", - "hyper", + "hyper 1.5.0", "hyper-timeout", "hyper-util", "percent-encoding", "pin-project", "prost", "rustls-native-certs", - "rustls-pemfile", + "rustls-pemfile 2.2.0", "socket2", "tokio", - "tokio-rustls", + "tokio-rustls 0.26.0", "tokio-stream", "tower 0.4.13", "tower-layer", @@ -6590,6 +7688,26 @@ dependencies = [ "utf-8", ] +[[package]] +name = "tungstenite" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9" +dependencies = [ + "byteorder", + "bytes 1.8.0", + "data-encoding", + "http 0.2.12", + "httparse", + "log", + "rand 0.8.5", + "rustls 0.21.12", + "sha1 0.10.6", + "thiserror", + "url", + "utf-8", +] + [[package]] name = "twirp-build-rs" version = "0.13.0-succinct" @@ -6610,9 +7728,9 @@ dependencies = [ "futures", "http 1.1.0", "http-body-util", - "hyper", + "hyper 1.5.0", "prost", - "reqwest", + "reqwest 0.12.9", "serde", "serde_json", "thiserror", @@ -6742,6 +7860,16 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" +[[package]] +name = "uuid" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" +dependencies = [ + "getrandom 0.2.15", + "serde", +] + [[package]] name = "valuable" version = "0.1.0" @@ -6953,6 +8081,12 @@ dependencies = [ "webpki", ] +[[package]] +name = "webpki-roots" +version = "0.25.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" + [[package]] name = "webpki-roots" version = "0.26.6" @@ -7208,6 +8342,35 @@ dependencies = [ "memchr", ] +[[package]] +name = "winreg" +version = "0.50.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" +dependencies = [ + "cfg-if", + "windows-sys 0.48.0", +] + +[[package]] +name = "ws_stream_wasm" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7999f5f4217fe3818726b66257a4475f71e74ffd190776ad053fa159e50737f5" +dependencies = [ + "async_io_stream", + "futures", + "js-sys", + "log", + "pharos", + "rustc_version 0.4.1", + "send_wrapper 0.6.0", + "thiserror", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + [[package]] name = "wyz" version = "0.5.1" @@ -7217,6 +8380,12 @@ dependencies = [ "tap", ] +[[package]] +name = "yansi" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" + [[package]] name = "yansi" version = "1.0.1" @@ -7264,6 +8433,26 @@ dependencies = [ "syn 2.0.85", ] +[[package]] +name = "zip" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261" +dependencies = [ + "aes 0.8.4", + "byteorder", + "bzip2", + "constant_time_eq 0.1.5", + "crc32fast", + "crossbeam-utils", + "flate2", + "hmac 0.12.1", + "pbkdf2 0.11.0", + "sha1 0.10.6", + "time 0.3.36", + "zstd", +] + [[package]] name = "zkhash" version = "0.2.0" @@ -7290,3 +8479,32 @@ dependencies = [ "sha3", "subtle", ] + +[[package]] +name = "zstd" +version = "0.11.2+zstd.1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4" +dependencies = [ + "zstd-safe", +] + +[[package]] +name = "zstd-safe" +version = "5.0.2+zstd.1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db" +dependencies = [ + "libc", + "zstd-sys", +] + +[[package]] +name = "zstd-sys" +version = "2.0.13+zstd.1.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38ff0f21cfee8f97d94cef41359e0c89aa6113028ab0291aa8ca0038995a95aa" +dependencies = [ + "cc", + "pkg-config", +] diff --git a/crates/sdk/Cargo.toml b/crates/sdk/Cargo.toml index 0f830d010..70cc3b3d0 100644 --- a/crates/sdk/Cargo.toml +++ b/crates/sdk/Cargo.toml @@ -34,7 +34,6 @@ indicatif = "0.17.8" tracing = "0.1.40" hex = "0.4.3" log = "0.4.22" -alloy-sol-types = { version = "0.7.7", optional = true } dirs = "5.0.1" tempfile = "3.10.1" cfg-if = "1.0" @@ -47,11 +46,14 @@ sp1-stark = { workspace = true } sp1-primitives = { workspace = true } itertools = "0.13.0" tonic = { version = "0.12", features = ["tls", "tls-roots"], optional = true } -alloy-signer = { version = "0.3.6", optional = true } -alloy-signer-local = { version = "0.3.6", optional = true } -alloy-primitives = { version = "0.8.7", optional = true } +alloy-sol-types = { version = "0.8", optional = true } +alloy-signer = { version = "0.5", optional = true } +alloy-signer-local = { version = "0.5", optional = true } +alloy-primitives = { version = "0.8", optional = true } backoff = { version = "0.4", features = ["tokio"], optional = true } +ethers = { version = "2", optional = true } + [features] default = ["network"] native-gnark = ["sp1-prover/native-gnark"] @@ -66,6 +68,7 @@ network = [ "dep:reqwest", "dep:twirp", "dep:reqwest-middleware", + "dep:ethers", ] network-v2 = [ "dep:prost", diff --git a/crates/sdk/src/network/auth.rs b/crates/sdk/src/network/auth.rs index 12dd3bd25..7786cc4d3 100644 --- a/crates/sdk/src/network/auth.rs +++ b/crates/sdk/src/network/auth.rs @@ -1,7 +1,8 @@ use std::{borrow::Cow, str::FromStr}; -use alloy_signer::Signer; +use alloy_signer::SignerSync; use alloy_signer_local::PrivateKeySigner; + use alloy_sol_types::{sol, Eip712Domain, SolStruct}; use anyhow::Result; @@ -79,7 +80,7 @@ impl NetworkAuth { async fn sign_message(&self, type_struct: T) -> Result> { let domain_separator = Self::get_domain_separator(); let message_hash = type_struct.eip712_signing_hash(&domain_separator); - let signature = self.wallet.sign_message(message_hash.as_slice()).await?; + let signature = self.wallet.sign_hash_sync(&message_hash)?; Ok(signature.as_bytes().to_vec()) } diff --git a/examples/Cargo.lock b/examples/Cargo.lock index f2a361ff0..7c2770ece 100644 --- a/examples/Cargo.lock +++ b/examples/Cargo.lock @@ -2,6 +2,16 @@ # It is not intended for manual editing. version = 3 +[[package]] +name = "Inflector" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" +dependencies = [ + "lazy_static", + "regex", +] + [[package]] name = "addchain" version = "0.2.0" @@ -28,6 +38,17 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" +[[package]] +name = "aes" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures", +] + [[package]] name = "aggregation-program" version = "1.1.0" @@ -91,11 +112,27 @@ version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "629b62e38d471cc15fea534eb7283d2f8a4e8bdb1811bcc5d66dda6cfce6fae1" dependencies = [ - "alloy-eips", + "alloy-eips 0.3.6", + "alloy-primitives 0.8.9", + "alloy-rlp", + "alloy-serde 0.3.6", + "c-kzg", + "serde", +] + +[[package]] +name = "alloy-consensus" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41ed961a48297c732a5d97ee321aa8bb5009ecadbcb077d8bec90cb54e651629" +dependencies = [ + "alloy-eips 0.5.4", "alloy-primitives 0.8.9", "alloy-rlp", - "alloy-serde", + "alloy-serde 0.5.4", + "auto_impl", "c-kzg", + "derive_more 1.0.0", "serde", ] @@ -122,6 +159,18 @@ dependencies = [ "serde", ] +[[package]] +name = "alloy-eip7702" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64ffc577390ce50234e02d841214b3dc0bea6aaaae8e04bbf3cb82e9a45da9eb" +dependencies = [ + "alloy-primitives 0.8.9", + "alloy-rlp", + "derive_more 1.0.0", + "serde", +] + [[package]] name = "alloy-eips" version = "0.3.6" @@ -129,10 +178,28 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f923dd5fca5f67a43d81ed3ebad0880bd41f6dd0ada930030353ac356c54cd0f" dependencies = [ "alloy-eip2930", - "alloy-eip7702", + "alloy-eip7702 0.1.1", + "alloy-primitives 0.8.9", + "alloy-rlp", + "alloy-serde 0.3.6", + "c-kzg", + "derive_more 1.0.0", + "once_cell", + "serde", + "sha2 0.10.8", +] + +[[package]] +name = "alloy-eips" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b69e06cf9c37be824b9d26d6d101114fdde6af0c87de2828b414c05c4b3daa71" +dependencies = [ + "alloy-eip2930", + "alloy-eip7702 0.3.2", "alloy-primitives 0.8.9", "alloy-rlp", - "alloy-serde", + "alloy-serde 0.5.4", "c-kzg", "derive_more 1.0.0", "once_cell", @@ -147,7 +214,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3a7a18afb0b318616b6b2b0e2e7ac5529d32a966c673b48091c9919e284e6aca" dependencies = [ "alloy-primitives 0.8.9", - "alloy-serde", + "alloy-serde 0.3.6", "serde", ] @@ -163,45 +230,71 @@ dependencies = [ "serde_json", ] +[[package]] +name = "alloy-json-rpc" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af5979e0d5a7bf9c7eb79749121e8256e59021af611322aee56e77e20776b4b3" +dependencies = [ + "alloy-primitives 0.8.9", + "alloy-sol-types", + "serde", + "serde_json", + "thiserror", + "tracing", +] + +[[package]] +name = "alloy-network" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "204237129086ce5dc17a58025e93739b01b45313841f98fa339eb1d780511e57" +dependencies = [ + "alloy-consensus 0.5.4", + "alloy-eips 0.5.4", + "alloy-json-rpc", + "alloy-network-primitives 0.5.4", + "alloy-primitives 0.8.9", + "alloy-rpc-types-eth 0.5.4", + "alloy-serde 0.5.4", + "alloy-signer", + "alloy-sol-types", + "async-trait", + "auto_impl", + "futures-utils-wasm", + "thiserror", +] + [[package]] name = "alloy-network-primitives" version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94ad40869867ed2d9cd3842b1e800889e5b49e6b92da346e93862b4a741bedf3" dependencies = [ - "alloy-eips", + "alloy-eips 0.3.6", "alloy-primitives 0.8.9", - "alloy-serde", + "alloy-serde 0.3.6", "serde", ] [[package]] -name = "alloy-primitives" -version = "0.6.4" +name = "alloy-network-primitives" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "600d34d8de81e23b6d909c094e23b3d357e01ca36b78a8c5424c501eedbe86f0" +checksum = "514f70ee2a953db21631cd817b13a1571474ec77ddc03d47616d5e8203489fde" dependencies = [ - "alloy-rlp", - "bytes", - "cfg-if", - "const-hex", - "derive_more 0.99.18", - "hex-literal", - "itoa", - "k256", - "keccak-asm", - "proptest", - "rand 0.8.5", - "ruint", + "alloy-consensus 0.5.4", + "alloy-eips 0.5.4", + "alloy-primitives 0.8.9", + "alloy-serde 0.5.4", "serde", - "tiny-keccak", ] [[package]] name = "alloy-primitives" -version = "0.7.7" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccb3ead547f4532bc8af961649942f0b9c16ee9226e26caa3f38420651cc0bf4" +checksum = "600d34d8de81e23b6d909c094e23b3d357e01ca36b78a8c5424c501eedbe86f0" dependencies = [ "alloy-rlp", "bytes", @@ -276,8 +369,8 @@ version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "64333d639f2a0cf73491813c629a405744e16343a4bc5640931be707c345ecc5" dependencies = [ - "alloy-rpc-types-eth", - "alloy-serde", + "alloy-rpc-types-eth 0.3.6", + "alloy-serde 0.3.6", "serde", ] @@ -287,13 +380,13 @@ version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "83aa984386deda02482660aa31cb8ca1e63d533f1c31a52d7d181ac5ec68e9b8" dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-network-primitives", + "alloy-consensus 0.3.6", + "alloy-eips 0.3.6", + "alloy-network-primitives 0.3.6", "alloy-primitives 0.8.9", "alloy-rlp", - "alloy-serde", - "alloy-sol-types 0.8.9", + "alloy-serde 0.3.6", + "alloy-sol-types", "cfg-if", "derive_more 1.0.0", "hashbrown 0.14.5", @@ -302,6 +395,25 @@ dependencies = [ "serde_json", ] +[[package]] +name = "alloy-rpc-types-eth" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b034779a4850b4b03f5be5ea674a1cf7d746b2da762b34d1860ab45e48ca27" +dependencies = [ + "alloy-consensus 0.5.4", + "alloy-eips 0.5.4", + "alloy-network-primitives 0.5.4", + "alloy-primitives 0.8.9", + "alloy-rlp", + "alloy-serde 0.5.4", + "alloy-sol-types", + "derive_more 1.0.0", + "itertools 0.13.0", + "serde", + "serde_json", +] + [[package]] name = "alloy-serde" version = "0.3.6" @@ -313,11 +425,22 @@ dependencies = [ "serde_json", ] +[[package]] +name = "alloy-serde" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "028e72eaa9703e4882344983cfe7636ce06d8cce104a78ea62fd19b46659efc4" +dependencies = [ + "alloy-primitives 0.8.9", + "serde", + "serde_json", +] + [[package]] name = "alloy-signer" -version = "0.3.6" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "307324cca94354cd654d6713629f0383ec037e1ff9e3e3d547212471209860c0" +checksum = "592c185d7100258c041afac51877660c7bf6213447999787197db4842f0e938e" dependencies = [ "alloy-primitives 0.8.9", "async-trait", @@ -328,17 +451,19 @@ dependencies = [ ] [[package]] -name = "alloy-sol-macro" -version = "0.7.7" +name = "alloy-signer-local" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b40397ddcdcc266f59f959770f601ce1280e699a91fc1862f29cef91707cd09" +checksum = "6614f02fc1d5b079b2a4a5320018317b506fd0a6d67c1fd5542a71201724986c" dependencies = [ - "alloy-sol-macro-expander 0.7.7", - "alloy-sol-macro-input 0.7.7", - "proc-macro-error", - "proc-macro2", - "quote", - "syn 2.0.85", + "alloy-consensus 0.5.4", + "alloy-network", + "alloy-primitives 0.8.9", + "alloy-signer", + "async-trait", + "k256", + "rand 0.8.5", + "thiserror", ] [[package]] @@ -347,39 +472,21 @@ version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b0900b83f4ee1f45c640ceee596afbc118051921b9438fdb5a3175c1a7e05f8b" dependencies = [ - "alloy-sol-macro-expander 0.8.9", - "alloy-sol-macro-input 0.8.9", + "alloy-sol-macro-expander", + "alloy-sol-macro-input", "proc-macro-error2", "proc-macro2", "quote", "syn 2.0.85", ] -[[package]] -name = "alloy-sol-macro-expander" -version = "0.7.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "867a5469d61480fea08c7333ffeca52d5b621f5ca2e44f271b117ec1fc9a0525" -dependencies = [ - "alloy-sol-macro-input 0.7.7", - "const-hex", - "heck", - "indexmap 2.6.0", - "proc-macro-error", - "proc-macro2", - "quote", - "syn 2.0.85", - "syn-solidity 0.7.7", - "tiny-keccak", -] - [[package]] name = "alloy-sol-macro-expander" version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a41b1e78dde06b5e12e6702fa8c1d30621bf07728ba75b801fb801c9c6a0ba10" dependencies = [ - "alloy-sol-macro-input 0.8.9", + "alloy-sol-macro-input", "const-hex", "heck", "indexmap 2.6.0", @@ -387,25 +494,10 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.85", - "syn-solidity 0.8.9", + "syn-solidity", "tiny-keccak", ] -[[package]] -name = "alloy-sol-macro-input" -version = "0.7.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e482dc33a32b6fadbc0f599adea520bd3aaa585c141a80b404d0a3e3fa72528" -dependencies = [ - "const-hex", - "dunce", - "heck", - "proc-macro2", - "quote", - "syn 2.0.85", - "syn-solidity 0.7.7", -] - [[package]] name = "alloy-sol-macro-input" version = "0.8.9" @@ -418,7 +510,7 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.85", - "syn-solidity 0.8.9", + "syn-solidity", ] [[package]] @@ -431,18 +523,6 @@ dependencies = [ "winnow 0.6.20", ] -[[package]] -name = "alloy-sol-types" -version = "0.7.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a91ca40fa20793ae9c3841b83e74569d1cc9af29a2f5237314fd3452d51e38c7" -dependencies = [ - "alloy-primitives 0.7.7", - "alloy-sol-macro 0.7.7", - "const-hex", - "serde", -] - [[package]] name = "alloy-sol-types" version = "0.8.9" @@ -451,7 +531,7 @@ checksum = "086f41bc6ebcd8cb15f38ba20e47be38dd03692149681ce8061c35d960dbf850" dependencies = [ "alloy-json-abi", "alloy-primitives 0.8.9", - "alloy-sol-macro 0.8.9", + "alloy-sol-macro", "const-hex", "serde", ] @@ -693,6 +773,15 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" +[[package]] +name = "ascii-canvas" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8824ecca2e851cec16968d54a01dd372ef8f95b244fb84b84e70128be347c3c6" +dependencies = [ + "term", +] + [[package]] name = "async-trait" version = "0.1.83" @@ -705,10 +794,15 @@ dependencies = [ ] [[package]] -name = "atomic-waker" -version = "1.1.2" +name = "async_io_stream" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" +checksum = "b6d7b9decdf35d8908a7e3ef02f64c5e9b1695e230154c0e8de3969142d9b94c" +dependencies = [ + "futures", + "pharos", + "rustc_version 0.4.1", +] [[package]] name = "aurora-engine-modexp" @@ -747,10 +841,10 @@ dependencies = [ "axum-core", "bytes", "futures-util", - "http", - "http-body", + "http 1.1.0", + "http-body 1.0.1", "http-body-util", - "hyper", + "hyper 1.5.0", "hyper-util", "itoa", "matchit", @@ -780,8 +874,8 @@ dependencies = [ "async-trait", "bytes", "futures-util", - "http", - "http-body", + "http 1.1.0", + "http-body 1.0.1", "http-body-util", "mime", "pin-project-lite", @@ -814,6 +908,12 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" +[[package]] +name = "base64" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + [[package]] name = "base64" version = "0.21.7" @@ -832,6 +932,12 @@ version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" +[[package]] +name = "bech32" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445" + [[package]] name = "bincode" version = "1.3.3" @@ -847,7 +953,7 @@ version = "0.70.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f49d8fed880d473ea71efb9bf597651e77201bdd4893efe54c9e5d65ae04ce6f" dependencies = [ - "bitflags", + "bitflags 2.6.0", "cexpr", "clang-sys", "itertools 0.13.0", @@ -876,6 +982,12 @@ version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + [[package]] name = "bitflags" version = "2.6.0" @@ -915,7 +1027,7 @@ checksum = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780" dependencies = [ "arrayref", "arrayvec 0.7.6", - "constant_time_eq", + "constant_time_eq 0.3.1", ] [[package]] @@ -1011,6 +1123,16 @@ dependencies = [ "sp1-sdk", ] +[[package]] +name = "bs58" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" +dependencies = [ + "sha2 0.10.8", + "tinyvec", +] + [[package]] name = "bumpalo" version = "3.16.0" @@ -1058,6 +1180,27 @@ dependencies = [ "serde", ] +[[package]] +name = "bzip2" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8" +dependencies = [ + "bzip2-sys", + "libc", +] + +[[package]] +name = "bzip2-sys" +version = "0.1.11+1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc" +dependencies = [ + "cc", + "libc", + "pkg-config", +] + [[package]] name = "c-kzg" version = "1.0.3" @@ -1178,6 +1321,16 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common", + "inout", +] + [[package]] name = "clang-sys" version = "1.8.1" @@ -1230,31 +1383,83 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" [[package]] -name = "colorchoice" -version = "1.0.3" +name = "coins-bip32" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" +checksum = "3b6be4a5df2098cd811f3194f64ddb96c267606bffd9689ac7b0160097b01ad3" +dependencies = [ + "bs58", + "coins-core", + "digest 0.10.7", + "hmac", + "k256", + "serde", + "sha2 0.10.8", + "thiserror", +] [[package]] -name = "console" -version = "0.15.8" +name = "coins-bip39" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb" +checksum = "3db8fba409ce3dc04f7d804074039eb68b960b0829161f8e06c95fea3f122528" dependencies = [ - "encode_unicode", - "lazy_static", - "libc", - "unicode-width", - "windows-sys 0.52.0", + "bitvec", + "coins-bip32", + "hmac", + "once_cell", + "pbkdf2 0.12.2", + "rand 0.8.5", + "sha2 0.10.8", + "thiserror", ] [[package]] -name = "const-hex" -version = "1.13.1" +name = "coins-core" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0121754e84117e65f9d90648ee6aa4882a6e63110307ab73967a4c5e7e69e586" +checksum = "5286a0843c21f8367f7be734f89df9b822e0321d8bcce8d6e735aadff7d74979" dependencies = [ - "cfg-if", + "base64 0.21.7", + "bech32", + "bs58", + "digest 0.10.7", + "generic-array 0.14.7", + "hex", + "ripemd", + "serde", + "serde_derive", + "sha2 0.10.8", + "sha3", + "thiserror", +] + +[[package]] +name = "colorchoice" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" + +[[package]] +name = "console" +version = "0.15.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb" +dependencies = [ + "encode_unicode", + "lazy_static", + "libc", + "unicode-width", + "windows-sys 0.52.0", +] + +[[package]] +name = "const-hex" +version = "1.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0121754e84117e65f9d90648ee6aa4882a6e63110307ab73967a4c5e7e69e586" +dependencies = [ + "cfg-if", "cpufeatures", "hex", "proptest", @@ -1273,6 +1478,12 @@ version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" +[[package]] +name = "constant_time_eq" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" + [[package]] name = "constant_time_eq" version = "0.3.1" @@ -1334,6 +1545,15 @@ version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" +[[package]] +name = "crc32fast" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" +dependencies = [ + "cfg-if", +] + [[package]] name = "crossbeam-deque" version = "0.8.5" @@ -1397,6 +1617,15 @@ dependencies = [ "typenum", ] +[[package]] +name = "ctr" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" +dependencies = [ + "cipher", +] + [[package]] name = "ctrlc" version = "3.4.5" @@ -1593,6 +1822,12 @@ dependencies = [ "rustversion", ] +[[package]] +name = "data-encoding" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" + [[package]] name = "der" version = "0.5.1" @@ -1701,6 +1936,16 @@ dependencies = [ "dirs-sys", ] +[[package]] +name = "dirs-next" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" +dependencies = [ + "cfg-if", + "dirs-sys-next", +] + [[package]] name = "dirs-sys" version = "0.4.1" @@ -1713,6 +1958,17 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "dirs-sys-next" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" +dependencies = [ + "libc", + "redox_users", + "winapi", +] + [[package]] name = "downcast-rs" version = "1.2.1" @@ -1829,6 +2085,15 @@ dependencies = [ "zeroize", ] +[[package]] +name = "ena" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d248bdd43ce613d87415282f69b9bb99d947d290b10962dd6c56233312c2ad5" +dependencies = [ + "log", +] + [[package]] name = "encode_unicode" version = "0.3.6" @@ -1844,6 +2109,24 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "enr" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a3d8dc56e02f954cac8eb489772c552c473346fc34f67412bb6244fd647f7e4" +dependencies = [ + "base64 0.21.7", + "bytes", + "hex", + "k256", + "log", + "rand 0.8.5", + "rlp", + "serde", + "sha3", + "zeroize", +] + [[package]] name = "enr" version = "0.12.1" @@ -1908,6 +2191,324 @@ dependencies = [ "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 0.8.5", + "scrypt", + "serde", + "serde_json", + "sha2 0.10.8", + "sha3", + "thiserror", + "uuid", +] + +[[package]] +name = "ethabi" +version = "18.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7413c5f74cc903ea37386a8965a936cbeb334bd270862fdece542c1b2dcbc898" +dependencies = [ + "ethereum-types", + "hex", + "once_cell", + "regex", + "serde", + "serde_json", + "sha3", + "thiserror", + "uint", +] + +[[package]] +name = "ethbloom" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c22d4b5885b6aa2fe5e8b9329fb8d232bf739e434e6b87347c63bdd00c120f60" +dependencies = [ + "crunchy", + "fixed-hash", + "impl-codec", + "impl-rlp", + "impl-serde", + "scale-info", + "tiny-keccak", +] + +[[package]] +name = "ethereum-types" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02d215cbf040552efcbe99a38372fe80ab9d00268e20012b79fcd0f073edd8ee" +dependencies = [ + "ethbloom", + "fixed-hash", + "impl-codec", + "impl-rlp", + "impl-serde", + "primitive-types", + "scale-info", + "uint", +] + +[[package]] +name = "ethers" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "816841ea989f0c69e459af1cf23a6b0033b19a55424a1ea3a30099becdb8dec0" +dependencies = [ + "ethers-addressbook", + "ethers-contract", + "ethers-core", + "ethers-etherscan", + "ethers-middleware", + "ethers-providers", + "ethers-signers", + "ethers-solc", +] + +[[package]] +name = "ethers-addressbook" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5495afd16b4faa556c3bba1f21b98b4983e53c1755022377051a975c3b021759" +dependencies = [ + "ethers-core", + "once_cell", + "serde", + "serde_json", +] + +[[package]] +name = "ethers-contract" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fceafa3578c836eeb874af87abacfb041f92b4da0a78a5edd042564b8ecdaaa" +dependencies = [ + "const-hex", + "ethers-contract-abigen", + "ethers-contract-derive", + "ethers-core", + "ethers-providers", + "futures-util", + "once_cell", + "pin-project", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "ethers-contract-abigen" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04ba01fbc2331a38c429eb95d4a570166781f14290ef9fdb144278a90b5a739b" +dependencies = [ + "Inflector", + "const-hex", + "dunce", + "ethers-core", + "ethers-etherscan", + "eyre", + "prettyplease", + "proc-macro2", + "quote", + "regex", + "reqwest 0.11.27", + "serde", + "serde_json", + "syn 2.0.85", + "toml", + "walkdir", +] + +[[package]] +name = "ethers-contract-derive" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87689dcabc0051cde10caaade298f9e9093d65f6125c14575db3fd8c669a168f" +dependencies = [ + "Inflector", + "const-hex", + "ethers-contract-abigen", + "ethers-core", + "proc-macro2", + "quote", + "serde_json", + "syn 2.0.85", +] + +[[package]] +name = "ethers-core" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82d80cc6ad30b14a48ab786523af33b37f28a8623fc06afd55324816ef18fb1f" +dependencies = [ + "arrayvec 0.7.6", + "bytes", + "cargo_metadata", + "chrono", + "const-hex", + "elliptic-curve", + "ethabi", + "generic-array 0.14.7", + "k256", + "num_enum 0.7.3", + "once_cell", + "open-fastrlp", + "rand 0.8.5", + "rlp", + "serde", + "serde_json", + "strum", + "syn 2.0.85", + "tempfile", + "thiserror", + "tiny-keccak", + "unicode-xid", +] + +[[package]] +name = "ethers-etherscan" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e79e5973c26d4baf0ce55520bd732314328cabe53193286671b47144145b9649" +dependencies = [ + "chrono", + "ethers-core", + "reqwest 0.11.27", + "semver 1.0.23", + "serde", + "serde_json", + "thiserror", + "tracing", +] + +[[package]] +name = "ethers-middleware" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48f9fdf09aec667c099909d91908d5eaf9be1bd0e2500ba4172c1d28bfaa43de" +dependencies = [ + "async-trait", + "auto_impl", + "ethers-contract", + "ethers-core", + "ethers-etherscan", + "ethers-providers", + "ethers-signers", + "futures-channel", + "futures-locks", + "futures-util", + "instant", + "reqwest 0.11.27", + "serde", + "serde_json", + "thiserror", + "tokio", + "tracing", + "tracing-futures", + "url", +] + +[[package]] +name = "ethers-providers" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6434c9a33891f1effc9c75472e12666db2fa5a0fec4b29af6221680a6fe83ab2" +dependencies = [ + "async-trait", + "auto_impl", + "base64 0.21.7", + "bytes", + "const-hex", + "enr 0.10.0", + "ethers-core", + "futures-core", + "futures-timer", + "futures-util", + "hashers", + "http 0.2.12", + "instant", + "jsonwebtoken", + "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-signers" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "228875491c782ad851773b652dd8ecac62cda8571d3bc32a5853644dd26766c2" +dependencies = [ + "async-trait", + "coins-bip32", + "coins-bip39", + "const-hex", + "elliptic-curve", + "eth-keystore", + "ethers-core", + "rand 0.8.5", + "sha2 0.10.8", + "thiserror", + "tracing", +] + +[[package]] +name = "ethers-solc" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66244a771d9163282646dbeffe0e6eca4dda4146b6498644e678ac6089b11edd" +dependencies = [ + "cfg-if", + "const-hex", + "dirs", + "dunce", + "ethers-core", + "glob", + "home", + "md-5", + "num_cpus", + "once_cell", + "path-slash", + "rayon", + "regex", + "semver 1.0.23", + "serde", + "serde_json", + "solang-parser", + "svm-rs", + "thiserror", + "tiny-keccak", + "tokio", + "tracing", + "walkdir", + "yansi", +] + [[package]] name = "eyre" version = "0.6.12" @@ -2031,6 +2632,22 @@ dependencies = [ "static_assertions", ] +[[package]] +name = "fixedbitset" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" + +[[package]] +name = "flate2" +version = "1.0.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1b589b4dc103969ad3cf85c950899926ec64300a1a46d76c03a6072957036f0" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + [[package]] name = "flex-error" version = "0.4.4" @@ -2053,27 +2670,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f81ec6369c545a7d40e4589b5597581fa1c441fe1cce96dd1de43159910a36a2" [[package]] -name = "foreign-types" -version = "0.3.2" +name = "form_urlencoded" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" dependencies = [ - "foreign-types-shared", + "percent-encoding", ] [[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - -[[package]] -name = "form_urlencoded" -version = "1.2.1" +name = "fs2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213" dependencies = [ - "percent-encoding", + "libc", + "winapi", ] [[package]] @@ -2130,6 +2742,16 @@ version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" +[[package]] +name = "futures-locks" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45ec6fe3675af967e67c5536c0b9d44e34e6c52f86bedc4ea49c5317b8e94d06" +dependencies = [ + "futures-channel", + "futures-task", +] + [[package]] name = "futures-macro" version = "0.3.31" @@ -2153,6 +2775,16 @@ version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" +[[package]] +name = "futures-timer" +version = "3.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" +dependencies = [ + "gloo-timers", + "send_wrapper 0.4.0", +] + [[package]] name = "futures-util" version = "0.3.31" @@ -2171,6 +2803,21 @@ 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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] + [[package]] name = "gcd" version = "2.3.0" @@ -2221,7 +2868,7 @@ version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b903b73e45dc0c6c596f2d37eccece7c1c8bb6e4407b001096387c63d0d93724" dependencies = [ - "bitflags", + "bitflags 2.6.0", "libc", "libgit2-sys", "log", @@ -2234,6 +2881,18 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" +[[package]] +name = "gloo-timers" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c" +dependencies = [ + "futures-channel", + "futures-core", + "js-sys", + "wasm-bindgen", +] + [[package]] name = "groth16-verifier-program" version = "1.1.0" @@ -2275,16 +2934,16 @@ dependencies = [ [[package]] name = "h2" -version = "0.4.6" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e8ac6999421f49a846c2d4411f337e53497d8ec55d67753beffa43c5d9205" +checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" dependencies = [ - "atomic-waker", "bytes", "fnv", "futures-core", "futures-sink", - "http", + "futures-util", + "http 0.2.12", "indexmap 2.6.0", "slab", "tokio", @@ -2350,6 +3009,15 @@ dependencies = [ "serde", ] +[[package]] +name = "hashers" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2bca93b15ea5a746f220e56587f71e73c6165eab783df9e26590069953e3c30" +dependencies = [ + "fxhash", +] + [[package]] name = "heck" version = "0.5.0" @@ -2386,6 +3054,26 @@ dependencies = [ "digest 0.10.7", ] +[[package]] +name = "home" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "http" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + [[package]] name = "http" version = "1.1.0" @@ -2397,6 +3085,17 @@ dependencies = [ "itoa", ] +[[package]] +name = "http-body" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" +dependencies = [ + "bytes", + "http 0.2.12", + "pin-project-lite", +] + [[package]] name = "http-body" version = "1.0.1" @@ -2404,7 +3103,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ "bytes", - "http", + "http 1.1.0", ] [[package]] @@ -2415,8 +3114,8 @@ checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" dependencies = [ "bytes", "futures-util", - "http", - "http-body", + "http 1.1.0", + "http-body 1.0.1", "pin-project-lite", ] @@ -2432,6 +3131,30 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" +[[package]] +name = "hyper" +version = "0.14.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c08302e8fa335b151b788c775ff56e7a03ae64ff85c548ee820fecb70356e85" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2", + "http 0.2.12", + "http-body 0.4.6", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", + "want", +] + [[package]] name = "hyper" version = "1.5.0" @@ -2441,9 +3164,8 @@ dependencies = [ "bytes", "futures-channel", "futures-util", - "h2", - "http", - "http-body", + "http 1.1.0", + "http-body 1.0.1", "httparse", "httpdate", "itoa", @@ -2455,36 +3177,34 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.27.3" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333" +checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" dependencies = [ "futures-util", - "http", - "hyper", - "hyper-util", - "rustls", - "rustls-pki-types", + "http 0.2.12", + "hyper 0.14.31", + "rustls 0.21.12", "tokio", - "tokio-rustls", - "tower-service", - "webpki-roots", + "tokio-rustls 0.24.1", ] [[package]] -name = "hyper-tls" -version = "0.6.0" +name = "hyper-rustls" +version = "0.27.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" +checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333" dependencies = [ - "bytes", - "http-body-util", - "hyper", + "futures-util", + "http 1.1.0", + "hyper 1.5.0", "hyper-util", - "native-tls", + "rustls 0.23.15", + "rustls-pki-types", "tokio", - "tokio-native-tls", + "tokio-rustls 0.26.0", "tower-service", + "webpki-roots 0.26.6", ] [[package]] @@ -2496,9 +3216,9 @@ dependencies = [ "bytes", "futures-channel", "futures-util", - "http", - "http-body", - "hyper", + "http 1.1.0", + "http-body 1.0.1", + "hyper 1.5.0", "pin-project-lite", "socket2", "tokio", @@ -2554,6 +3274,24 @@ dependencies = [ "parity-scale-codec", ] +[[package]] +name = "impl-rlp" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f28220f89297a075ddc7245cd538076ee98b01f2a9c23a53a4f1105d5a322808" +dependencies = [ + "rlp", +] + +[[package]] +name = "impl-serde" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc88fc67028ae3db0c853baa36269d398d5f45b6982f95549ff5def78c935cd" +dependencies = [ + "serde", +] + [[package]] name = "impl-trait-for-tuples" version = "0.2.2" @@ -2606,6 +3344,15 @@ dependencies = [ "unicode-width", ] +[[package]] +name = "inout" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" +dependencies = [ + "generic-array 0.14.7", +] + [[package]] name = "instant" version = "0.1.13" @@ -2668,6 +3415,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" +dependencies = [ + "either", +] + [[package]] name = "itertools" version = "0.12.1" @@ -2736,6 +3492,20 @@ dependencies = [ "sp1-sdk", ] +[[package]] +name = "jsonwebtoken" +version = "8.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378" +dependencies = [ + "base64 0.21.7", + "pem", + "ring 0.16.20", + "serde", + "serde_json", + "simple_asn1", +] + [[package]] name = "jubjub" version = "0.9.0" @@ -2784,16 +3554,46 @@ dependencies = [ ] [[package]] -name = "kzg-rs" -version = "0.2.3" +name = "kzg-rs" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0850eb19206463a61bede4f7b7e6b21731807137619044b1f3c287ebcfe2b3b0" +dependencies = [ + "ff 0.13.0", + "hex", + "sha2 0.10.8", + "sp1_bls12_381", + "spin 0.9.8", +] + +[[package]] +name = "lalrpop" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55cb077ad656299f160924eb2912aa147d7339ea7d69e1b5517326fdcec3c1ca" +dependencies = [ + "ascii-canvas", + "bit-set", + "ena", + "itertools 0.11.0", + "lalrpop-util", + "petgraph", + "regex", + "regex-syntax 0.8.5", + "string_cache", + "term", + "tiny-keccak", + "unicode-xid", + "walkdir", +] + +[[package]] +name = "lalrpop-util" +version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0850eb19206463a61bede4f7b7e6b21731807137619044b1f3c287ebcfe2b3b0" +checksum = "507460a910eb7b32ee961886ff48539633b788a36b65692b95f225b844c82553" dependencies = [ - "ff 0.13.0", - "hex", - "sha2 0.10.8", - "sp1_bls12_381", - "spin", + "regex-automata 0.4.8", ] [[package]] @@ -2802,7 +3602,7 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" dependencies = [ - "spin", + "spin 0.9.8", ] [[package]] @@ -2845,7 +3645,7 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "bitflags", + "bitflags 2.6.0", "libc", ] @@ -2907,6 +3707,16 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" +[[package]] +name = "md-5" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" +dependencies = [ + "cfg-if", + "digest 0.10.7", +] + [[package]] name = "memchr" version = "2.7.4" @@ -2974,21 +3784,10 @@ dependencies = [ ] [[package]] -name = "native-tls" -version = "0.2.12" +name = "new_debug_unreachable" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" -dependencies = [ - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", -] +checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" [[package]] name = "nix" @@ -2996,7 +3795,7 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" dependencies = [ - "bitflags", + "bitflags 2.6.0", "cfg-if", "cfg_aliases", "libc", @@ -3223,6 +4022,7 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" dependencies = [ + "proc-macro-crate 1.3.1", "proc-macro2", "quote", "syn 2.0.85", @@ -3277,14 +4077,14 @@ version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "21aad1fbf80d2bcd7406880efc7ba109365f44bbb72896758ddcbfa46bf1592c" dependencies = [ - "alloy-consensus", - "alloy-eips", + "alloy-consensus 0.3.6", + "alloy-eips 0.3.6", "alloy-primitives 0.8.9", "alloy-rlp", - "alloy-serde", + "alloy-serde 0.3.6", "derive_more 1.0.0", "serde", - "spin", + "spin 0.9.8", ] [[package]] @@ -3293,11 +4093,11 @@ version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e281fbfc2198b7c0c16457d6524f83d192662bc9f3df70f24c3038d4521616df" dependencies = [ - "alloy-eips", - "alloy-network-primitives", + "alloy-eips 0.3.6", + "alloy-network-primitives 0.3.6", "alloy-primitives 0.8.9", - "alloy-rpc-types-eth", - "alloy-serde", + "alloy-rpc-types-eth 0.3.6", + "alloy-serde 0.3.6", "cfg-if", "hashbrown 0.14.5", "op-alloy-consensus", @@ -3312,47 +4112,28 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] -name = "openssl" -version = "0.10.68" +name = "open-fastrlp" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" +checksum = "786393f80485445794f6043fd3138854dd109cc6c4bd1a6383db304c9ce9b9ce" dependencies = [ - "bitflags", - "cfg-if", - "foreign-types", - "libc", - "once_cell", - "openssl-macros", - "openssl-sys", + "arrayvec 0.7.6", + "auto_impl", + "bytes", + "ethereum-types", + "open-fastrlp-derive", ] [[package]] -name = "openssl-macros" +name = "open-fastrlp-derive" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" +checksum = "003b2be5c6c53c1cfeb0a238b8a1c3915cd410feb684457a36c10038f764bb1c" dependencies = [ + "bytes", "proc-macro2", "quote", - "syn 2.0.85", -] - -[[package]] -name = "openssl-probe" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" - -[[package]] -name = "openssl-sys" -version = "0.9.104" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45abf306cbf99debc8195b66b7346498d7b10c210de50418b5ccd7ceba08c741" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", + "syn 1.0.109", ] [[package]] @@ -3676,6 +4457,17 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "password-hash" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7676374caaee8a325c9e7a2ae557f216c5563a171d6997b0ef8a65af35147700" +dependencies = [ + "base64ct", + "rand_core 0.6.4", + "subtle", +] + [[package]] name = "pasta_curves" version = "0.4.1" @@ -3738,6 +4530,43 @@ dependencies = [ "sp1-sdk", ] +[[package]] +name = "path-slash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e91099d4268b0e11973f036e885d652fb0b21fedcf69738c627f94db6a44f42" + +[[package]] +name = "pbkdf2" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" +dependencies = [ + "digest 0.10.7", + "hmac", + "password-hash", + "sha2 0.10.8", +] + +[[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 = "pem" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8" +dependencies = [ + "base64 0.13.1", +] + [[package]] name = "pem-rfc7468" version = "0.3.1" @@ -3773,6 +4602,97 @@ dependencies = [ "ucd-trie", ] +[[package]] +name = "petgraph" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" +dependencies = [ + "fixedbitset", + "indexmap 2.6.0", +] + +[[package]] +name = "pharos" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9567389417feee6ce15dd6527a8a1ecac205ef62c2932bcf3d9f6fc5b78b414" +dependencies = [ + "futures", + "rustc_version 0.4.1", +] + +[[package]] +name = "phf" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" +dependencies = [ + "phf_macros", + "phf_shared 0.11.2", +] + +[[package]] +name = "phf_generator" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0" +dependencies = [ + "phf_shared 0.11.2", + "rand 0.8.5", +] + +[[package]] +name = "phf_macros" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b" +dependencies = [ + "phf_generator", + "phf_shared 0.11.2", + "proc-macro2", + "quote", + "syn 2.0.85", +] + +[[package]] +name = "phf_shared" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" +dependencies = [ + "siphasher", +] + +[[package]] +name = "phf_shared" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" +dependencies = [ + "siphasher", +] + +[[package]] +name = "pin-project" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be57f64e946e500c8ee36ef6331845d40a93055567ec57e8fae13efd33759b95" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c0f5fad0874fc7abcd4d750e76917eaebbecaa2c20bde22e1dbeeba8beb758c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.85", +] + [[package]] name = "pin-project-lite" version = "0.2.15" @@ -3855,6 +4775,12 @@ dependencies = [ "zerocopy", ] +[[package]] +name = "precomputed-hash" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" + [[package]] name = "prettyplease" version = "0.2.25" @@ -3882,6 +4808,9 @@ checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" dependencies = [ "fixed-hash", "impl-codec", + "impl-rlp", + "impl-serde", + "scale-info", "uint", ] @@ -3904,30 +4833,6 @@ dependencies = [ "toml_edit 0.22.22", ] -[[package]] -name = "proc-macro-error" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" -dependencies = [ - "proc-macro-error-attr", - "proc-macro2", - "quote", - "syn 1.0.109", - "version_check", -] - -[[package]] -name = "proc-macro-error-attr" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" -dependencies = [ - "proc-macro2", - "quote", - "version_check", -] - [[package]] name = "proc-macro-error-attr2" version = "2.0.0" @@ -3967,7 +4872,7 @@ checksum = "b4c2511913b88df1637da85cc8d96ec8e43a3f8bb8ccb71ee1ac240d6f3df58d" dependencies = [ "bit-set", "bit-vec", - "bitflags", + "bitflags 2.6.0", "lazy_static", "num-traits", "rand 0.8.5", @@ -4051,7 +4956,7 @@ dependencies = [ "quinn-proto", "quinn-udp", "rustc-hash 2.0.0", - "rustls", + "rustls 0.23.15", "socket2", "thiserror", "tokio", @@ -4066,9 +4971,9 @@ checksum = "fadfaed2cd7f389d0161bb73eeb07b7b78f8691047a6f3e73caaeae55310a4a6" dependencies = [ "bytes", "rand 0.8.5", - "ring", + "ring 0.17.8", "rustc-hash 2.0.0", - "rustls", + "rustls 0.23.15", "slab", "thiserror", "tinyvec", @@ -4224,7 +5129,7 @@ version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f" dependencies = [ - "bitflags", + "bitflags 2.6.0", ] [[package]] @@ -4298,6 +5203,47 @@ version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" +[[package]] +name = "reqwest" +version = "0.11.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" +dependencies = [ + "base64 0.21.7", + "bytes", + "encoding_rs", + "futures-core", + "futures-util", + "h2", + "http 0.2.12", + "http-body 0.4.6", + "hyper 0.14.31", + "hyper-rustls 0.24.2", + "ipnet", + "js-sys", + "log", + "mime", + "once_cell", + "percent-encoding", + "pin-project-lite", + "rustls 0.21.12", + "rustls-pemfile 1.0.4", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper 0.1.2", + "system-configuration", + "tokio", + "tokio-rustls 0.24.1", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "webpki-roots 0.25.4", + "winreg", +] + [[package]] name = "reqwest" version = "0.12.8" @@ -4306,37 +5252,31 @@ checksum = "f713147fbe92361e52392c73b8c9e48c04c6625bce969ef54dc901e58e042a7b" dependencies = [ "base64 0.22.1", "bytes", - "encoding_rs", "futures-core", "futures-util", - "h2", - "http", - "http-body", + "http 1.1.0", + "http-body 1.0.1", "http-body-util", - "hyper", - "hyper-rustls", - "hyper-tls", + "hyper 1.5.0", + "hyper-rustls 0.27.3", "hyper-util", "ipnet", "js-sys", "log", "mime", - "native-tls", "once_cell", "percent-encoding", "pin-project-lite", "quinn", - "rustls", - "rustls-pemfile", + "rustls 0.23.15", + "rustls-pemfile 2.2.0", "rustls-pki-types", "serde", "serde_json", "serde_urlencoded", "sync_wrapper 1.0.1", - "system-configuration", "tokio", - "tokio-native-tls", - "tokio-rustls", + "tokio-rustls 0.26.0", "tokio-util", "tower-service", "url", @@ -4344,7 +5284,7 @@ dependencies = [ "wasm-bindgen-futures", "wasm-streams", "web-sys", - "webpki-roots", + "webpki-roots 0.26.6", "windows-registry", ] @@ -4356,8 +5296,8 @@ checksum = "562ceb5a604d3f7c885a792d42c199fd8af239d0a51b2fa6a78aafa092452b04" dependencies = [ "anyhow", "async-trait", - "http", - "reqwest", + "http 1.1.0", + "reqwest 0.12.8", "serde", "thiserror", "tower-service", @@ -4381,7 +5321,7 @@ version = "1.0.6" source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" dependencies = [ "alloy-chains", - "alloy-eips", + "alloy-eips 0.3.6", "alloy-genesis", "alloy-primitives 0.8.9", "alloy-trie", @@ -4402,8 +5342,8 @@ name = "reth-codecs" version = "1.0.6" source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" dependencies = [ - "alloy-consensus", - "alloy-eips", + "alloy-consensus 0.3.6", + "alloy-eips 0.3.6", "alloy-genesis", "alloy-primitives 0.8.9", "alloy-trie", @@ -4503,7 +5443,7 @@ name = "reth-evm" version = "1.0.6" source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" dependencies = [ - "alloy-eips", + "alloy-eips 0.3.6", "auto_impl", "futures-util", "reth-chainspec", @@ -4521,8 +5461,8 @@ name = "reth-evm-ethereum" version = "1.0.6" source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" dependencies = [ - "alloy-eips", - "alloy-sol-types 0.8.9", + "alloy-eips 0.3.6", + "alloy-sol-types", "reth-chainspec", "reth-ethereum-consensus", "reth-ethereum-forks", @@ -4559,7 +5499,7 @@ name = "reth-execution-errors" version = "1.0.6" source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" dependencies = [ - "alloy-eips", + "alloy-eips 0.3.6", "alloy-primitives 0.8.9", "alloy-rlp", "derive_more 1.0.0", @@ -4599,7 +5539,7 @@ source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374 dependencies = [ "alloy-primitives 0.8.9", "alloy-rlp", - "enr", + "enr 0.12.1", "serde_with", "thiserror", "url", @@ -4637,13 +5577,13 @@ name = "reth-primitives" version = "1.0.6" source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" dependencies = [ - "alloy-consensus", - "alloy-eips", + "alloy-consensus 0.3.6", + "alloy-eips 0.3.6", "alloy-genesis", "alloy-primitives 0.8.9", "alloy-rlp", "alloy-rpc-types", - "alloy-serde", + "alloy-serde 0.3.6", "bytes", "derive_more 1.0.0", "k256", @@ -4666,12 +5606,12 @@ name = "reth-primitives-traits" version = "1.0.6" source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" dependencies = [ - "alloy-consensus", - "alloy-eips", + "alloy-consensus 0.3.6", + "alloy-eips 0.3.6", "alloy-genesis", "alloy-primitives 0.8.9", "alloy-rlp", - "alloy-rpc-types-eth", + "alloy-rpc-types-eth 0.3.6", "byteorder", "bytes", "derive_more 1.0.0", @@ -4786,7 +5726,7 @@ name = "reth-trie-common" version = "1.0.6" source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" dependencies = [ - "alloy-consensus", + "alloy-consensus 0.3.6", "alloy-genesis", "alloy-primitives 0.8.9", "alloy-rlp", @@ -4852,10 +5792,10 @@ version = "9.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e7a6bff9dbde3370a5ac9555104117f7e6039b3cc76e8d5d9d01899088beca2a" dependencies = [ - "alloy-eips", + "alloy-eips 0.3.6", "alloy-primitives 0.8.9", "auto_impl", - "bitflags", + "bitflags 2.6.0", "bitvec", "c-kzg", "cfg-if", @@ -4877,6 +5817,21 @@ dependencies = [ "subtle", ] +[[package]] +name = "ring" +version = "0.16.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" +dependencies = [ + "cc", + "libc", + "once_cell", + "spin 0.5.2", + "untrusted 0.7.1", + "web-sys", + "winapi", +] + [[package]] name = "ring" version = "0.17.8" @@ -4887,8 +5842,8 @@ dependencies = [ "cfg-if", "getrandom", "libc", - "spin", - "untrusted", + "spin 0.9.8", + "untrusted 0.9.0", "windows-sys 0.52.0", ] @@ -4908,9 +5863,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" dependencies = [ "bytes", + "rlp-derive", "rustc-hex", ] +[[package]] +name = "rlp-derive" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e33d7b2abe0c340d8797fe2907d3f20d3b5ea5908683618bfe80df7f621f672a" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "roaring" version = "0.10.6" @@ -5179,13 +6146,25 @@ version = "0.38.38" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa260229e6538e52293eeb577aabd09945a09d6d9cc0fc550ed7529056c2e32a" dependencies = [ - "bitflags", + "bitflags 2.6.0", "errno", "libc", "linux-raw-sys", "windows-sys 0.52.0", ] +[[package]] +name = "rustls" +version = "0.21.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" +dependencies = [ + "log", + "ring 0.17.8", + "rustls-webpki 0.101.7", + "sct", +] + [[package]] name = "rustls" version = "0.23.15" @@ -5193,13 +6172,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5fbb44d7acc4e873d613422379f69f237a1b141928c02f6bc6ccfddddc2d7993" dependencies = [ "once_cell", - "ring", + "ring 0.17.8", "rustls-pki-types", - "rustls-webpki", + "rustls-webpki 0.102.8", "subtle", "zeroize", ] +[[package]] +name = "rustls-pemfile" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +dependencies = [ + "base64 0.21.7", +] + [[package]] name = "rustls-pemfile" version = "2.2.0" @@ -5215,15 +6203,25 @@ version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "16f1201b3c9a7ee8039bcadc17b7e605e2945b27eee7631788c1bd2b0643674b" +[[package]] +name = "rustls-webpki" +version = "0.101.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" +dependencies = [ + "ring 0.17.8", + "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", + "ring 0.17.8", "rustls-pki-types", - "untrusted", + "untrusted 0.9.0", ] [[package]] @@ -5248,7 +6246,25 @@ dependencies = [ name = "ryu" version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" + +[[package]] +name = "salsa20" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213" +dependencies = [ + "cipher", +] + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] [[package]] name = "scale-info" @@ -5284,19 +6300,32 @@ dependencies = [ ] [[package]] -name = "schannel" -version = "0.1.26" +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "scrypt" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01227be5826fa0690321a2ba6c5cd57a19cf3f6a09e76973b58e61de6ab9d1c1" +checksum = "9f9e24d2b632954ded8ab2ef9fea0a0c769ea56ea98bddbafbad22caeeadf45d" dependencies = [ - "windows-sys 0.59.0", + "hmac", + "pbkdf2 0.11.0", + "salsa20", + "sha2 0.10.8", ] [[package]] -name = "scopeguard" -version = "1.2.0" +name = "sct" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" +checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" +dependencies = [ + "ring 0.17.8", + "untrusted 0.9.0", +] [[package]] name = "sdd" @@ -5339,29 +6368,6 @@ dependencies = [ "cc", ] -[[package]] -name = "security-framework" -version = "2.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" -dependencies = [ - "bitflags", - "core-foundation", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea4a292869320c0272d7bc55a5a6aafaff59b4f63404a003887b679a2e05b4b6" -dependencies = [ - "core-foundation-sys", - "libc", -] - [[package]] name = "semver" version = "0.11.0" @@ -5389,6 +6395,18 @@ dependencies = [ "pest", ] +[[package]] +name = "send_wrapper" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f638d531eccd6e23b980caf34876660d38e265409d8e99b397ab71eb3612fad0" + +[[package]] +name = "send_wrapper" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" + [[package]] name = "serde" version = "1.0.213" @@ -5462,6 +6480,15 @@ dependencies = [ "syn 2.0.85", ] +[[package]] +name = "serde_spanned" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" +dependencies = [ + "serde", +] + [[package]] name = "serde_urlencoded" version = "0.7.1" @@ -5529,6 +6556,17 @@ dependencies = [ "syn 2.0.85", ] +[[package]] +name = "sha1" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.7", +] + [[package]] name = "sha2" version = "0.9.8" @@ -5617,6 +6655,24 @@ dependencies = [ "rand_core 0.6.4", ] +[[package]] +name = "simple_asn1" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085" +dependencies = [ + "num-bigint 0.4.6", + "num-traits", + "thiserror", + "time", +] + +[[package]] +name = "siphasher" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" + [[package]] name = "size" version = "0.4.1" @@ -5661,6 +6717,20 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "solang-parser" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c425ce1c59f4b154717592f0bdf4715c3a1d55058883622d3157e1f0908a5b26" +dependencies = [ + "itertools 0.11.0", + "lalrpop", + "lalrpop-util", + "phf", + "thiserror", + "unicode-xid", +] + [[package]] name = "sp1-build" version = "3.0.0" @@ -5999,12 +7069,14 @@ name = "sp1-sdk" version = "3.0.0" dependencies = [ "alloy-signer", - "alloy-sol-types 0.7.7", + "alloy-signer-local", + "alloy-sol-types", "anyhow", "async-trait", "bincode", "cfg-if", "dirs", + "ethers", "futures", "hashbrown 0.14.5", "hex", @@ -6015,7 +7087,7 @@ dependencies = [ "p3-field", "p3-fri", "prost 0.13.3", - "reqwest", + "reqwest 0.12.8", "reqwest-middleware", "serde", "sp1-core-executor", @@ -6108,6 +7180,12 @@ dependencies = [ "subtle", ] +[[package]] +name = "spin" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" + [[package]] name = "spin" version = "0.9.8" @@ -6190,6 +7268,19 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" +[[package]] +name = "string_cache" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b" +dependencies = [ + "new_debug_unreachable", + "once_cell", + "parking_lot", + "phf_shared 0.10.0", + "precomputed-hash", +] + [[package]] name = "strsim" version = "0.11.1" @@ -6270,6 +7361,26 @@ version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "734676eb262c623cec13c3155096e08d1f8f29adce39ba17948b18dad1e54142" +[[package]] +name = "svm-rs" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11297baafe5fa0c99d5722458eac6a5e25c01eb1b8e5cd137f54079093daa7a4" +dependencies = [ + "dirs", + "fs2", + "hex", + "once_cell", + "reqwest 0.11.27", + "semver 1.0.23", + "serde", + "serde_json", + "sha2 0.10.8", + "thiserror", + "url", + "zip", +] + [[package]] name = "syn" version = "1.0.109" @@ -6292,18 +7403,6 @@ dependencies = [ "unicode-ident", ] -[[package]] -name = "syn-solidity" -version = "0.7.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c837dc8852cb7074e46b444afb81783140dab12c58867b49fb3898fbafedf7ea" -dependencies = [ - "paste", - "proc-macro2", - "quote", - "syn 2.0.85", -] - [[package]] name = "syn-solidity" version = "0.8.9" @@ -6360,20 +7459,20 @@ dependencies = [ [[package]] name = "system-configuration" -version = "0.6.1" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" +checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" dependencies = [ - "bitflags", + "bitflags 1.3.2", "core-foundation", "system-configuration-sys", ] [[package]] name = "system-configuration-sys" -version = "0.6.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" +checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" dependencies = [ "core-foundation-sys", "libc", @@ -6478,6 +7577,17 @@ dependencies = [ "tendermint-light-client-verifier", ] +[[package]] +name = "term" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f" +dependencies = [ + "dirs-next", + "rustversion", + "winapi", +] + [[package]] name = "thiserror" version = "1.0.65" @@ -6624,12 +7734,12 @@ dependencies = [ ] [[package]] -name = "tokio-native-tls" -version = "0.3.1" +name = "tokio-rustls" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" +checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" dependencies = [ - "native-tls", + "rustls 0.21.12", "tokio", ] @@ -6639,11 +7749,26 @@ version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" dependencies = [ - "rustls", + "rustls 0.23.15", "rustls-pki-types", "tokio", ] +[[package]] +name = "tokio-tungstenite" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c" +dependencies = [ + "futures-util", + "log", + "rustls 0.21.12", + "tokio", + "tokio-rustls 0.24.1", + "tungstenite", + "webpki-roots 0.25.4", +] + [[package]] name = "tokio-util" version = "0.7.12" @@ -6657,11 +7782,26 @@ dependencies = [ "tokio", ] +[[package]] +name = "toml" +version = "0.8.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit 0.22.22", +] + [[package]] name = "toml_datetime" version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" +dependencies = [ + "serde", +] [[package]] name = "toml_edit" @@ -6681,6 +7821,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" dependencies = [ "indexmap 2.6.0", + "serde", + "serde_spanned", "toml_datetime", "winnow 0.6.20", ] @@ -6759,6 +7901,16 @@ dependencies = [ "tracing-subscriber", ] +[[package]] +name = "tracing-futures" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" +dependencies = [ + "pin-project", + "tracing", +] + [[package]] name = "tracing-log" version = "0.2.0" @@ -6794,6 +7946,26 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" +[[package]] +name = "tungstenite" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9" +dependencies = [ + "byteorder", + "bytes", + "data-encoding", + "http 0.2.12", + "httparse", + "log", + "rand 0.8.5", + "rustls 0.21.12", + "sha1", + "thiserror", + "url", + "utf-8", +] + [[package]] name = "twirp-rs" version = "0.13.0-succinct" @@ -6803,11 +7975,11 @@ dependencies = [ "async-trait", "axum", "futures", - "http", + "http 1.1.0", "http-body-util", - "hyper", + "hyper 1.5.0", "prost 0.13.3", - "reqwest", + "reqwest 0.12.8", "serde", "serde_json", "thiserror", @@ -6885,6 +8057,12 @@ version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" +[[package]] +name = "untrusted" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" + [[package]] name = "untrusted" version = "0.9.0" @@ -6902,12 +8080,28 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "utf-8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + [[package]] name = "utf8parse" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" +[[package]] +name = "uuid" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" +dependencies = [ + "getrandom", + "serde", +] + [[package]] name = "valuable" version = "0.1.0" @@ -6957,6 +8151,16 @@ dependencies = [ "libc", ] +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + [[package]] name = "want" version = "0.3.1" @@ -7072,6 +8276,12 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "webpki-roots" +version = "0.25.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" + [[package]] name = "webpki-roots" version = "0.26.6" @@ -7097,6 +8307,15 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" +[[package]] +name = "winapi-util" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" +dependencies = [ + "windows-sys 0.48.0", +] + [[package]] name = "winapi-x86_64-pc-windows-gnu" version = "0.4.0" @@ -7318,6 +8537,35 @@ dependencies = [ "memchr", ] +[[package]] +name = "winreg" +version = "0.50.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" +dependencies = [ + "cfg-if", + "windows-sys 0.48.0", +] + +[[package]] +name = "ws_stream_wasm" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7999f5f4217fe3818726b66257a4475f71e74ffd190776ad053fa159e50737f5" +dependencies = [ + "async_io_stream", + "futures", + "js-sys", + "log", + "pharos", + "rustc_version 0.4.1", + "send_wrapper 0.6.0", + "thiserror", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + [[package]] name = "wyz" version = "0.5.1" @@ -7327,6 +8575,12 @@ dependencies = [ "tap", ] +[[package]] +name = "yansi" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" + [[package]] name = "zerocopy" version = "0.7.35" @@ -7368,6 +8622,26 @@ dependencies = [ "syn 2.0.85", ] +[[package]] +name = "zip" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261" +dependencies = [ + "aes", + "byteorder", + "bzip2", + "constant_time_eq 0.1.5", + "crc32fast", + "crossbeam-utils", + "flate2", + "hmac", + "pbkdf2 0.11.0", + "sha1", + "time", + "zstd", +] + [[package]] name = "zkhash" version = "0.2.0" @@ -7395,6 +8669,35 @@ dependencies = [ "subtle", ] +[[package]] +name = "zstd" +version = "0.11.2+zstd.1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4" +dependencies = [ + "zstd-safe", +] + +[[package]] +name = "zstd-safe" +version = "5.0.2+zstd.1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db" +dependencies = [ + "libc", + "zstd-sys", +] + +[[package]] +name = "zstd-sys" +version = "2.0.13+zstd.1.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38ff0f21cfee8f97d94cef41359e0c89aa6113028ab0291aa8ca0038995a95aa" +dependencies = [ + "cc", + "pkg-config", +] + [[patch.unused]] name = "ecdsa" version = "0.16.8" From ca7b585532b3a340b16b41c61e880fbb205fc704 Mon Sep 17 00:00:00 2001 From: Yuwen Zhang Date: Fri, 1 Nov 2024 14:10:23 -0700 Subject: [PATCH 06/14] no ethers +cargo update --- Cargo.lock | 1570 +++------------------------------- crates/sdk/Cargo.toml | 3 - examples/Cargo.lock | 1858 +++++------------------------------------ 3 files changed, 311 insertions(+), 3120 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4dbba0882..b8f3da3ef 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2,16 +2,6 @@ # It is not intended for manual editing. version = 3 -[[package]] -name = "Inflector" -version = "0.11.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" -dependencies = [ - "lazy_static", - "regex", -] - [[package]] name = "addchain" version = "0.2.0" @@ -55,18 +45,7 @@ checksum = "884391ef1066acaa41e766ba8f596341b96e93ce34f9a43e7d24bf0a0eaf0561" dependencies = [ "aes-soft", "aesni", - "cipher 0.2.5", -] - -[[package]] -name = "aes" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" -dependencies = [ - "cfg-if", - "cipher 0.4.4", - "cpufeatures", + "cipher", ] [[package]] @@ -76,9 +55,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5278b5fabbb9bd46e24aa69b2fdea62c99088e0a950a9be40e3e0101298f88da" dependencies = [ "aead", - "aes 0.6.0", - "cipher 0.2.5", - "ctr 0.6.0", + "aes", + "cipher", + "ctr", "ghash", "subtle", ] @@ -89,7 +68,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be14c7498ea50828a38d0e24a765ed2effe92a705885b57d029cd67d45744072" dependencies = [ - "cipher 0.2.5", + "cipher", "opaque-debug", ] @@ -99,7 +78,7 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea2e11f5e94c2f7d386164cc2aa1f97823fed6f259e486940a71c174dd01b0ce" dependencies = [ - "cipher 0.2.5", + "cipher", "opaque-debug", ] @@ -651,15 +630,6 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" -[[package]] -name = "ascii-canvas" -version = "3.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8824ecca2e851cec16968d54a01dd372ef8f95b244fb84b84e70128be347c3c6" -dependencies = [ - "term", -] - [[package]] name = "async-attributes" version = "1.1.2" @@ -767,7 +737,7 @@ dependencies = [ "futures-core", "futures-io", "futures-lite 2.4.0", - "gloo-timers 0.3.0", + "gloo-timers", "kv-log-macro", "log", "memchr", @@ -840,18 +810,7 @@ dependencies = [ "futures-util", "log", "pin-project-lite", - "tungstenite 0.18.0", -] - -[[package]] -name = "async_io_stream" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6d7b9decdf35d8908a7e3ef02f64c5e9b1695e230154c0e8de3969142d9b94c" -dependencies = [ - "futures", - "pharos", - "rustc_version 0.4.1", + "tungstenite", ] [[package]] @@ -888,9 +847,9 @@ dependencies = [ "bytes 1.8.0", "futures-util", "http 1.1.0", - "http-body 1.0.1", + "http-body", "http-body-util", - "hyper 1.5.0", + "hyper", "hyper-util", "itoa", "matchit", @@ -921,7 +880,7 @@ dependencies = [ "bytes 1.8.0", "futures-util", "http 1.1.0", - "http-body 1.0.1", + "http-body", "http-body-util", "mime", "pin-project-lite", @@ -986,12 +945,6 @@ version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" -[[package]] -name = "base64" -version = "0.21.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" - [[package]] name = "base64" version = "0.22.1" @@ -1004,12 +957,6 @@ version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" -[[package]] -name = "bech32" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445" - [[package]] name = "bincode" version = "1.3.3" @@ -1025,7 +972,7 @@ version = "0.70.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f49d8fed880d473ea71efb9bf597651e77201bdd4893efe54c9e5d65ae04ce6f" dependencies = [ - "bitflags 2.6.0", + "bitflags", "cexpr", "clang-sys", "itertools 0.13.0", @@ -1054,12 +1001,6 @@ version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - [[package]] name = "bitflags" version = "2.6.0" @@ -1095,7 +1036,7 @@ checksum = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780" dependencies = [ "arrayref", "arrayvec", - "constant_time_eq 0.3.1", + "constant_time_eq", ] [[package]] @@ -1154,16 +1095,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "bs58" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" -dependencies = [ - "sha2 0.10.8", - "tinyvec", -] - [[package]] name = "bumpalo" version = "3.16.0" @@ -1217,27 +1148,6 @@ dependencies = [ "serde", ] -[[package]] -name = "bzip2" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8" -dependencies = [ - "bzip2-sys", - "libc", -] - -[[package]] -name = "bzip2-sys" -version = "0.1.11+1.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc" -dependencies = [ - "cc", - "libc", - "pkg-config", -] - [[package]] name = "c-kzg" version = "1.0.3" @@ -1371,16 +1281,6 @@ dependencies = [ "generic-array 0.14.7", ] -[[package]] -name = "cipher" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" -dependencies = [ - "crypto-common", - "inout", -] - [[package]] name = "clang-sys" version = "1.8.1" @@ -1432,58 +1332,6 @@ version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" -[[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 0.12.1", - "k256", - "serde", - "sha2 0.10.8", - "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 0.12.1", - "once_cell", - "pbkdf2 0.12.2", - "rand 0.8.5", - "sha2 0.10.8", - "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 0.14.7", - "hex", - "ripemd", - "serde", - "serde_derive", - "sha2 0.10.8", - "sha3", - "thiserror", -] - [[package]] name = "colorchoice" version = "1.0.3" @@ -1537,12 +1385,6 @@ version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "373e9fafaa20882876db20562275ff58d50e0caa2590077fe7ce7bef90211d0d" -[[package]] -name = "constant_time_eq" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" - [[package]] name = "constant_time_eq" version = "0.3.1" @@ -1597,15 +1439,6 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dcb25d077389e53838a8158c8e99174c5a9d902dee4904320db714f3c653ffba" -[[package]] -name = "crc32fast" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" -dependencies = [ - "cfg-if", -] - [[package]] name = "criterion" version = "0.5.1" @@ -1732,16 +1565,7 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fb4a30d54f7443bf3d6191dcd486aca19e67cb3c49fa7a06a319966346707e7f" dependencies = [ - "cipher 0.2.5", -] - -[[package]] -name = "ctr" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" -dependencies = [ - "cipher 0.4.4", + "cipher", ] [[package]] @@ -1924,12 +1748,6 @@ dependencies = [ "rustversion", ] -[[package]] -name = "data-encoding" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" - [[package]] name = "der" version = "0.7.9" @@ -2107,15 +1925,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "ena" -version = "0.14.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d248bdd43ce613d87415282f69b9bb99d947d290b10962dd6c56233312c2ad5" -dependencies = [ - "log", -] - [[package]] name = "encode_unicode" version = "0.3.6" @@ -2137,24 +1946,6 @@ dependencies = [ "cfg-if", ] -[[package]] -name = "enr" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a3d8dc56e02f954cac8eb489772c552c473346fc34f67412bb6244fd647f7e4" -dependencies = [ - "base64 0.21.7", - "bytes 1.8.0", - "hex", - "k256", - "log", - "rand 0.8.5", - "rlp", - "serde", - "sha3", - "zeroize", -] - [[package]] name = "enum-map" version = "2.7.3" @@ -2193,415 +1984,97 @@ dependencies = [ ] [[package]] -name = "eth-keystore" -version = "0.5.0" +name = "event-listener" +version = "2.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fda3bf123be441da5260717e0661c25a2fd9cb2b2c1d20bf2e05580047158ab" -dependencies = [ - "aes 0.8.4", - "ctr 0.9.2", - "digest 0.10.7", - "hex", - "hmac 0.12.1", - "pbkdf2 0.11.0", - "rand 0.8.5", - "scrypt", - "serde", - "serde_json", - "sha2 0.10.8", - "sha3", - "thiserror", - "uuid", -] +checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" [[package]] -name = "ethabi" -version = "18.0.0" +name = "event-listener" +version = "5.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7413c5f74cc903ea37386a8965a936cbeb334bd270862fdece542c1b2dcbc898" +checksum = "6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba" dependencies = [ - "ethereum-types", - "hex", - "once_cell", - "regex", - "serde", - "serde_json", - "sha3", - "thiserror", - "uint", + "concurrent-queue", + "parking", + "pin-project-lite", ] [[package]] -name = "ethbloom" -version = "0.13.0" +name = "event-listener-strategy" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c22d4b5885b6aa2fe5e8b9329fb8d232bf739e434e6b87347c63bdd00c120f60" +checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1" dependencies = [ - "crunchy", - "fixed-hash", - "impl-codec", - "impl-rlp", - "impl-serde", - "scale-info", - "tiny-keccak", + "event-listener 5.3.1", + "pin-project-lite", ] [[package]] -name = "ethereum-types" -version = "0.14.1" +name = "eyre" +version = "0.6.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02d215cbf040552efcbe99a38372fe80ab9d00268e20012b79fcd0f073edd8ee" +checksum = "7cd915d99f24784cdc19fd37ef22b97e3ff0ae756c7e492e9fbfe897d61e2aec" dependencies = [ - "ethbloom", - "fixed-hash", - "impl-codec", - "impl-rlp", - "impl-serde", - "primitive-types", - "scale-info", - "uint", + "indenter", + "once_cell", ] [[package]] -name = "ethers" -version = "2.0.14" +name = "fastrand" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "816841ea989f0c69e459af1cf23a6b0033b19a55424a1ea3a30099becdb8dec0" +checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" dependencies = [ - "ethers-addressbook", - "ethers-contract", - "ethers-core", - "ethers-etherscan", - "ethers-middleware", - "ethers-providers", - "ethers-signers", - "ethers-solc", + "instant", ] [[package]] -name = "ethers-addressbook" -version = "2.0.14" +name = "fastrand" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6" + +[[package]] +name = "fastrlp" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5495afd16b4faa556c3bba1f21b98b4983e53c1755022377051a975c3b021759" +checksum = "139834ddba373bbdd213dffe02c8d110508dcf1726c2be27e8d1f7d7e1856418" dependencies = [ - "ethers-core", - "once_cell", - "serde", - "serde_json", + "arrayvec", + "auto_impl", + "bytes 1.8.0", ] [[package]] -name = "ethers-contract" -version = "2.0.14" +name = "ff" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fceafa3578c836eeb874af87abacfb041f92b4da0a78a5edd042564b8ecdaaa" +checksum = "d013fc25338cc558c5c2cfbad646908fb23591e2404481826742b651c9af7160" dependencies = [ - "const-hex", - "ethers-contract-abigen", - "ethers-contract-derive", - "ethers-core", - "ethers-providers", - "futures-util", - "once_cell", - "pin-project", - "serde", - "serde_json", - "thiserror", + "bitvec", + "rand_core 0.6.4", + "subtle", ] [[package]] -name = "ethers-contract-abigen" -version = "2.0.14" +name = "ff" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04ba01fbc2331a38c429eb95d4a570166781f14290ef9fdb144278a90b5a739b" +checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" dependencies = [ - "Inflector", - "const-hex", - "dunce", - "ethers-core", - "ethers-etherscan", - "eyre", - "prettyplease", - "proc-macro2", - "quote", - "regex", - "reqwest 0.11.27", - "serde", - "serde_json", - "syn 2.0.85", - "toml", - "walkdir", + "bitvec", + "byteorder", + "ff_derive", + "rand_core 0.6.4", + "subtle", ] [[package]] -name = "ethers-contract-derive" -version = "2.0.14" +name = "ff_derive" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87689dcabc0051cde10caaade298f9e9093d65f6125c14575db3fd8c669a168f" -dependencies = [ - "Inflector", - "const-hex", - "ethers-contract-abigen", - "ethers-core", - "proc-macro2", - "quote", - "serde_json", - "syn 2.0.85", -] - -[[package]] -name = "ethers-core" -version = "2.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82d80cc6ad30b14a48ab786523af33b37f28a8623fc06afd55324816ef18fb1f" -dependencies = [ - "arrayvec", - "bytes 1.8.0", - "cargo_metadata", - "chrono", - "const-hex", - "elliptic-curve", - "ethabi", - "generic-array 0.14.7", - "k256", - "num_enum 0.7.3", - "once_cell", - "open-fastrlp", - "rand 0.8.5", - "rlp", - "serde", - "serde_json", - "strum", - "syn 2.0.85", - "tempfile", - "thiserror", - "tiny-keccak", - "unicode-xid", -] - -[[package]] -name = "ethers-etherscan" -version = "2.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e79e5973c26d4baf0ce55520bd732314328cabe53193286671b47144145b9649" -dependencies = [ - "chrono", - "ethers-core", - "reqwest 0.11.27", - "semver 1.0.23", - "serde", - "serde_json", - "thiserror", - "tracing", -] - -[[package]] -name = "ethers-middleware" -version = "2.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48f9fdf09aec667c099909d91908d5eaf9be1bd0e2500ba4172c1d28bfaa43de" -dependencies = [ - "async-trait", - "auto_impl", - "ethers-contract", - "ethers-core", - "ethers-etherscan", - "ethers-providers", - "ethers-signers", - "futures-channel", - "futures-locks", - "futures-util", - "instant", - "reqwest 0.11.27", - "serde", - "serde_json", - "thiserror", - "tokio", - "tracing", - "tracing-futures", - "url", -] - -[[package]] -name = "ethers-providers" -version = "2.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6434c9a33891f1effc9c75472e12666db2fa5a0fec4b29af6221680a6fe83ab2" -dependencies = [ - "async-trait", - "auto_impl", - "base64 0.21.7", - "bytes 1.8.0", - "const-hex", - "enr", - "ethers-core", - "futures-core", - "futures-timer", - "futures-util", - "hashers", - "http 0.2.12", - "instant", - "jsonwebtoken", - "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-signers" -version = "2.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "228875491c782ad851773b652dd8ecac62cda8571d3bc32a5853644dd26766c2" -dependencies = [ - "async-trait", - "coins-bip32", - "coins-bip39", - "const-hex", - "elliptic-curve", - "eth-keystore", - "ethers-core", - "rand 0.8.5", - "sha2 0.10.8", - "thiserror", - "tracing", -] - -[[package]] -name = "ethers-solc" -version = "2.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66244a771d9163282646dbeffe0e6eca4dda4146b6498644e678ac6089b11edd" -dependencies = [ - "cfg-if", - "const-hex", - "dirs", - "dunce", - "ethers-core", - "glob", - "home", - "md-5", - "num_cpus", - "once_cell", - "path-slash", - "rayon", - "regex", - "semver 1.0.23", - "serde", - "serde_json", - "solang-parser", - "svm-rs", - "thiserror", - "tiny-keccak", - "tokio", - "tracing", - "walkdir", - "yansi 0.5.1", -] - -[[package]] -name = "event-listener" -version = "2.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" - -[[package]] -name = "event-listener" -version = "5.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba" -dependencies = [ - "concurrent-queue", - "parking", - "pin-project-lite", -] - -[[package]] -name = "event-listener-strategy" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1" -dependencies = [ - "event-listener 5.3.1", - "pin-project-lite", -] - -[[package]] -name = "eyre" -version = "0.6.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cd915d99f24784cdc19fd37ef22b97e3ff0ae756c7e492e9fbfe897d61e2aec" -dependencies = [ - "indenter", - "once_cell", -] - -[[package]] -name = "fastrand" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" -dependencies = [ - "instant", -] - -[[package]] -name = "fastrand" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6" - -[[package]] -name = "fastrlp" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "139834ddba373bbdd213dffe02c8d110508dcf1726c2be27e8d1f7d7e1856418" -dependencies = [ - "arrayvec", - "auto_impl", - "bytes 1.8.0", -] - -[[package]] -name = "ff" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d013fc25338cc558c5c2cfbad646908fb23591e2404481826742b651c9af7160" -dependencies = [ - "bitvec", - "rand_core 0.6.4", - "subtle", -] - -[[package]] -name = "ff" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" -dependencies = [ - "bitvec", - "byteorder", - "ff_derive", - "rand_core 0.6.4", - "subtle", -] - -[[package]] -name = "ff_derive" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9f54704be45ed286151c5e11531316eaef5b8f5af7d597b806fdb8af108d84a" +checksum = "e9f54704be45ed286151c5e11531316eaef5b8f5af7d597b806fdb8af108d84a" dependencies = [ "addchain", "cfg-if", @@ -2637,16 +2110,6 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" -[[package]] -name = "flate2" -version = "1.0.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1b589b4dc103969ad3cf85c950899926ec64300a1a46d76c03a6072957036f0" -dependencies = [ - "crc32fast", - "miniz_oxide", -] - [[package]] name = "flume" version = "0.9.2" @@ -2694,16 +2157,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" @@ -2786,16 +2239,6 @@ dependencies = [ "pin-project-lite", ] -[[package]] -name = "futures-locks" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45ec6fe3675af967e67c5536c0b9d44e34e6c52f86bedc4ea49c5317b8e94d06" -dependencies = [ - "futures-channel", - "futures-task", -] - [[package]] name = "futures-macro" version = "0.3.31" @@ -2819,16 +2262,6 @@ version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" -[[package]] -name = "futures-timer" -version = "3.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" -dependencies = [ - "gloo-timers 0.2.6", - "send_wrapper 0.4.0", -] - [[package]] name = "futures-util" version = "0.3.31" @@ -2853,15 +2286,6 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42012b0f064e01aa58b545fe3727f90f7dd4020f4a3ea735b50344965f5a57e9" -[[package]] -name = "fxhash" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" -dependencies = [ - "byteorder", -] - [[package]] name = "gcd" version = "2.3.0" @@ -2933,7 +2357,7 @@ version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b903b73e45dc0c6c596f2d37eccece7c1c8bb6e4407b001096387c63d0d93724" dependencies = [ - "bitflags 2.6.0", + "bitflags", "libc", "libgit2-sys", "log", @@ -2946,18 +2370,6 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" -[[package]] -name = "gloo-timers" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c" -dependencies = [ - "futures-channel", - "futures-core", - "js-sys", - "wasm-bindgen", -] - [[package]] name = "gloo-timers" version = "0.3.0" @@ -3014,25 +2426,6 @@ dependencies = [ "subtle", ] -[[package]] -name = "h2" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" -dependencies = [ - "bytes 1.8.0", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http 0.2.12", - "indexmap 2.6.0", - "slab", - "tokio", - "tokio-util", - "tracing", -] - [[package]] name = "h2" version = "0.4.6" @@ -3114,15 +2507,6 @@ dependencies = [ "serde", ] -[[package]] -name = "hashers" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2bca93b15ea5a746f220e56587f71e73c6165eab783df9e26590069953e3c30" -dependencies = [ - "fxhash", -] - [[package]] name = "heck" version = "0.5.0" @@ -3185,15 +2569,6 @@ dependencies = [ "digest 0.10.7", ] -[[package]] -name = "home" -version = "0.5.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" -dependencies = [ - "windows-sys 0.52.0", -] - [[package]] name = "http" version = "0.2.12" @@ -3212,19 +2587,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" dependencies = [ "bytes 1.8.0", - "fnv", - "itoa", -] - -[[package]] -name = "http-body" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" -dependencies = [ - "bytes 1.8.0", - "http 0.2.12", - "pin-project-lite", + "fnv", + "itoa", ] [[package]] @@ -3246,7 +2610,7 @@ dependencies = [ "bytes 1.8.0", "futures-util", "http 1.1.0", - "http-body 1.0.1", + "http-body", "pin-project-lite", ] @@ -3298,30 +2662,6 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" -[[package]] -name = "hyper" -version = "0.14.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c08302e8fa335b151b788c775ff56e7a03ae64ff85c548ee820fecb70356e85" -dependencies = [ - "bytes 1.8.0", - "futures-channel", - "futures-core", - "futures-util", - "h2 0.3.26", - "http 0.2.12", - "http-body 0.4.6", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "socket2", - "tokio", - "tower-service", - "tracing", - "want", -] - [[package]] name = "hyper" version = "1.5.0" @@ -3331,9 +2671,9 @@ dependencies = [ "bytes 1.8.0", "futures-channel", "futures-util", - "h2 0.4.6", + "h2", "http 1.1.0", - "http-body 1.0.1", + "http-body", "httparse", "httpdate", "itoa", @@ -3343,20 +2683,6 @@ dependencies = [ "want", ] -[[package]] -name = "hyper-rustls" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" -dependencies = [ - "futures-util", - "http 0.2.12", - "hyper 0.14.31", - "rustls 0.21.12", - "tokio", - "tokio-rustls 0.24.1", -] - [[package]] name = "hyper-rustls" version = "0.27.3" @@ -3365,12 +2691,12 @@ checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333" dependencies = [ "futures-util", "http 1.1.0", - "hyper 1.5.0", + "hyper", "hyper-util", "rustls 0.23.16", "rustls-pki-types", "tokio", - "tokio-rustls 0.26.0", + "tokio-rustls", "tower-service", "webpki-roots 0.26.6", ] @@ -3381,7 +2707,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3203a961e5c83b6f5498933e78b6b263e208c197b63e9c6c53cc82ffd3f63793" dependencies = [ - "hyper 1.5.0", + "hyper", "hyper-util", "pin-project-lite", "tokio", @@ -3396,7 +2722,7 @@ checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" dependencies = [ "bytes 1.8.0", "http-body-util", - "hyper 1.5.0", + "hyper", "hyper-util", "native-tls", "tokio", @@ -3414,8 +2740,8 @@ dependencies = [ "futures-channel", "futures-util", "http 1.1.0", - "http-body 1.0.1", - "hyper 1.5.0", + "http-body", + "hyper", "pin-project-lite", "socket2", "tokio", @@ -3471,24 +2797,6 @@ dependencies = [ "parity-scale-codec", ] -[[package]] -name = "impl-rlp" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f28220f89297a075ddc7245cd538076ee98b01f2a9c23a53a4f1105d5a322808" -dependencies = [ - "rlp", -] - -[[package]] -name = "impl-serde" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc88fc67028ae3db0c853baa36269d398d5f45b6982f95549ff5def78c935cd" -dependencies = [ - "serde", -] - [[package]] name = "impl-trait-for-tuples" version = "0.2.2" @@ -3546,15 +2854,6 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "64e9829a50b42bb782c1df523f78d332fe371b10c661e78b7a3c34b0198e9fac" -[[package]] -name = "inout" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" -dependencies = [ - "generic-array 0.14.7", -] - [[package]] name = "instant" version = "0.1.13" @@ -3619,15 +2918,6 @@ dependencies = [ "either", ] -[[package]] -name = "itertools" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" -dependencies = [ - "either", -] - [[package]] name = "itertools" version = "0.12.1" @@ -3670,20 +2960,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "jsonwebtoken" -version = "8.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378" -dependencies = [ - "base64 0.21.7", - "pem", - "ring 0.16.20", - "serde", - "serde_json", - "simple_asn1", -] - [[package]] name = "jubjub" version = "0.9.0" @@ -3740,36 +3016,6 @@ dependencies = [ "log", ] -[[package]] -name = "lalrpop" -version = "0.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55cb077ad656299f160924eb2912aa147d7339ea7d69e1b5517326fdcec3c1ca" -dependencies = [ - "ascii-canvas", - "bit-set", - "ena", - "itertools 0.11.0", - "lalrpop-util", - "petgraph", - "regex", - "regex-syntax 0.8.5", - "string_cache", - "term", - "tiny-keccak", - "unicode-xid", - "walkdir", -] - -[[package]] -name = "lalrpop-util" -version = "0.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "507460a910eb7b32ee961886ff48539633b788a36b65692b95f225b844c82553" -dependencies = [ - "regex-automata 0.4.8", -] - [[package]] name = "lazy_static" version = "1.5.0" @@ -3829,7 +3075,7 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "bitflags 2.6.0", + "bitflags", "libc", ] @@ -3894,16 +3140,6 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" -[[package]] -name = "md-5" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" -dependencies = [ - "cfg-if", - "digest 0.10.7", -] - [[package]] name = "memchr" version = "2.7.4" @@ -3982,19 +3218,13 @@ dependencies = [ "tempfile", ] -[[package]] -name = "new_debug_unreachable" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" - [[package]] name = "nix" version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" dependencies = [ - "bitflags 2.6.0", + "bitflags", "cfg-if", "cfg_aliases", "libc", @@ -4159,16 +3389,7 @@ version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9" dependencies = [ - "num_enum_derive 0.5.11", -] - -[[package]] -name = "num_enum" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" -dependencies = [ - "num_enum_derive 0.7.3", + "num_enum_derive", ] [[package]] @@ -4183,18 +3404,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "num_enum_derive" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" -dependencies = [ - "proc-macro-crate 3.2.0", - "proc-macro2", - "quote", - "syn 2.0.85", -] - [[package]] name = "num_threads" version = "0.1.7" @@ -4237,38 +3446,13 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" -[[package]] -name = "open-fastrlp" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "786393f80485445794f6043fd3138854dd109cc6c4bd1a6383db304c9ce9b9ce" -dependencies = [ - "arrayvec", - "auto_impl", - "bytes 1.8.0", - "ethereum-types", - "open-fastrlp-derive", -] - -[[package]] -name = "open-fastrlp-derive" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "003b2be5c6c53c1cfeb0a238b8a1c3915cd410feb684457a36c10038f764bb1c" -dependencies = [ - "bytes 1.8.0", - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "openssl" version = "0.10.68" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" dependencies = [ - "bitflags 2.6.0", + "bitflags", "cfg-if", "foreign-types", "libc", @@ -4612,17 +3796,6 @@ dependencies = [ "windows-targets 0.52.6", ] -[[package]] -name = "password-hash" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7676374caaee8a325c9e7a2ae557f216c5563a171d6997b0ef8a65af35147700" -dependencies = [ - "base64ct", - "rand_core 0.6.4", - "subtle", -] - [[package]] name = "pasta_curves" version = "0.4.1" @@ -4659,43 +3832,6 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" -[[package]] -name = "path-slash" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e91099d4268b0e11973f036e885d652fb0b21fedcf69738c627f94db6a44f42" - -[[package]] -name = "pbkdf2" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" -dependencies = [ - "digest 0.10.7", - "hmac 0.12.1", - "password-hash", - "sha2 0.10.8", -] - -[[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 0.12.1", -] - -[[package]] -name = "pem" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8" -dependencies = [ - "base64 0.13.1", -] - [[package]] name = "percent-encoding" version = "2.3.1" @@ -4723,67 +3859,6 @@ dependencies = [ "indexmap 2.6.0", ] -[[package]] -name = "pharos" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9567389417feee6ce15dd6527a8a1ecac205ef62c2932bcf3d9f6fc5b78b414" -dependencies = [ - "futures", - "rustc_version 0.4.1", -] - -[[package]] -name = "phf" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" -dependencies = [ - "phf_macros", - "phf_shared 0.11.2", -] - -[[package]] -name = "phf_generator" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0" -dependencies = [ - "phf_shared 0.11.2", - "rand 0.8.5", -] - -[[package]] -name = "phf_macros" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b" -dependencies = [ - "phf_generator", - "phf_shared 0.11.2", - "proc-macro2", - "quote", - "syn 2.0.85", -] - -[[package]] -name = "phf_shared" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" -dependencies = [ - "siphasher", -] - -[[package]] -name = "phf_shared" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" -dependencies = [ - "siphasher", -] - [[package]] name = "pin-project" version = "1.1.7" @@ -4924,12 +3999,6 @@ dependencies = [ "zerocopy", ] -[[package]] -name = "precomputed-hash" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" - [[package]] name = "prettyplease" version = "0.2.25" @@ -4962,9 +4031,6 @@ checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" dependencies = [ "fixed-hash", "impl-codec", - "impl-rlp", - "impl-serde", - "scale-info", "uint", ] @@ -5032,7 +4098,7 @@ checksum = "b4c2511913b88df1637da85cc8d96ec8e43a3f8bb8ccb71ee1ac240d6f3df58d" dependencies = [ "bit-set", "bit-vec", - "bitflags 2.6.0", + "bitflags", "lazy_static", "num-traits", "rand 0.8.5", @@ -5283,7 +4349,7 @@ version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f" dependencies = [ - "bitflags 2.6.0", + "bitflags", ] [[package]] @@ -5330,57 +4396,16 @@ dependencies = [ ] [[package]] -name = "regex-syntax" -version = "0.6.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" - -[[package]] -name = "regex-syntax" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" - -[[package]] -name = "reqwest" -version = "0.11.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" -dependencies = [ - "base64 0.21.7", - "bytes 1.8.0", - "encoding_rs", - "futures-core", - "futures-util", - "h2 0.3.26", - "http 0.2.12", - "http-body 0.4.6", - "hyper 0.14.31", - "hyper-rustls 0.24.2", - "ipnet", - "js-sys", - "log", - "mime", - "once_cell", - "percent-encoding", - "pin-project-lite", - "rustls 0.21.12", - "rustls-pemfile 1.0.4", - "serde", - "serde_json", - "serde_urlencoded", - "sync_wrapper 0.1.2", - "system-configuration 0.5.1", - "tokio", - "tokio-rustls 0.24.1", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "webpki-roots 0.25.4", - "winreg", -] +name = "regex-syntax" +version = "0.6.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" + +[[package]] +name = "regex-syntax" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "reqwest" @@ -5393,12 +4418,12 @@ dependencies = [ "encoding_rs", "futures-core", "futures-util", - "h2 0.4.6", + "h2", "http 1.1.0", - "http-body 1.0.1", + "http-body", "http-body-util", - "hyper 1.5.0", - "hyper-rustls 0.27.3", + "hyper", + "hyper-rustls", "hyper-tls", "hyper-util", "ipnet", @@ -5411,16 +4436,16 @@ dependencies = [ "pin-project-lite", "quinn", "rustls 0.23.16", - "rustls-pemfile 2.2.0", + "rustls-pemfile", "rustls-pki-types", "serde", "serde_json", "serde_urlencoded", "sync_wrapper 1.0.1", - "system-configuration 0.6.1", + "system-configuration", "tokio", "tokio-native-tls", - "tokio-rustls 0.26.0", + "tokio-rustls", "tokio-util", "tower-service", "url", @@ -5441,7 +4466,7 @@ dependencies = [ "anyhow", "async-trait", "http 1.1.0", - "reqwest 0.12.9", + "reqwest", "serde", "thiserror", "tower-service", @@ -5487,15 +4512,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "ripemd" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" -dependencies = [ - "digest 0.10.7", -] - [[package]] name = "rlp" version = "0.5.2" @@ -5503,21 +4519,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" dependencies = [ "bytes 1.8.0", - "rlp-derive", "rustc-hex", ] -[[package]] -name = "rlp-derive" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e33d7b2abe0c340d8797fe2907d3f20d3b5ea5908683618bfe80df7f621f672a" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "rrs-succinct" version = "0.1.0" @@ -5525,7 +4529,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3372685893a9f67d18e98e792d690017287fd17379a83d798d958e517d380fa9" dependencies = [ "downcast-rs", - "num_enum 0.5.11", + "num_enum", "paste", ] @@ -5628,7 +4632,7 @@ version = "0.38.38" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa260229e6538e52293eeb577aabd09945a09d6d9cc0fc550ed7529056c2e32a" dependencies = [ - "bitflags 2.6.0", + "bitflags", "errno", "libc", "linux-raw-sys", @@ -5644,22 +4648,10 @@ dependencies = [ "base64 0.13.1", "log", "ring 0.16.20", - "sct 0.6.1", + "sct", "webpki", ] -[[package]] -name = "rustls" -version = "0.21.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" -dependencies = [ - "log", - "ring 0.17.8", - "rustls-webpki 0.101.7", - "sct 0.7.1", -] - [[package]] name = "rustls" version = "0.23.16" @@ -5670,7 +4662,7 @@ dependencies = [ "once_cell", "ring 0.17.8", "rustls-pki-types", - "rustls-webpki 0.102.8", + "rustls-webpki", "subtle", "zeroize", ] @@ -5682,21 +4674,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fcaf18a4f2be7326cd874a5fa579fae794320a0f388d365dca7e480e55f83f8a" dependencies = [ "openssl-probe", - "rustls-pemfile 2.2.0", + "rustls-pemfile", "rustls-pki-types", "schannel", "security-framework", ] -[[package]] -name = "rustls-pemfile" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" -dependencies = [ - "base64 0.21.7", -] - [[package]] name = "rustls-pemfile" version = "2.2.0" @@ -5712,16 +4695,6 @@ version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "16f1201b3c9a7ee8039bcadc17b7e605e2945b27eee7631788c1bd2b0643674b" -[[package]] -name = "rustls-webpki" -version = "0.101.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" -dependencies = [ - "ring 0.17.8", - "untrusted 0.9.0", -] - [[package]] name = "rustls-webpki" version = "0.102.8" @@ -5757,15 +4730,6 @@ version = "1.0.18" 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" -dependencies = [ - "cipher 0.4.4", -] - [[package]] name = "same-file" version = "1.0.6" @@ -5843,18 +4807,6 @@ dependencies = [ "syn 2.0.85", ] -[[package]] -name = "scrypt" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f9e24d2b632954ded8ab2ef9fea0a0c769ea56ea98bddbafbad22caeeadf45d" -dependencies = [ - "hmac 0.12.1", - "pbkdf2 0.11.0", - "salsa20", - "sha2 0.10.8", -] - [[package]] name = "sct" version = "0.6.1" @@ -5865,16 +4817,6 @@ dependencies = [ "untrusted 0.7.1", ] -[[package]] -name = "sct" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" -dependencies = [ - "ring 0.17.8", - "untrusted 0.9.0", -] - [[package]] name = "sdd" version = "3.0.4" @@ -5901,7 +4843,7 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.6.0", + "bitflags", "core-foundation", "core-foundation-sys", "libc", @@ -5960,18 +4902,6 @@ dependencies = [ "pest", ] -[[package]] -name = "send_wrapper" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f638d531eccd6e23b980caf34876660d38e265409d8e99b397ab71eb3612fad0" - -[[package]] -name = "send_wrapper" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" - [[package]] name = "serde" version = "1.0.214" @@ -6025,15 +4955,6 @@ dependencies = [ "thiserror", ] -[[package]] -name = "serde_spanned" -version = "0.6.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" -dependencies = [ - "serde", -] - [[package]] name = "serde_urlencoded" version = "0.7.1" @@ -6197,24 +5118,6 @@ dependencies = [ "rand_core 0.6.4", ] -[[package]] -name = "simple_asn1" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085" -dependencies = [ - "num-bigint 0.4.6", - "num-traits", - "thiserror", - "time 0.3.36", -] - -[[package]] -name = "siphasher" -version = "0.3.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" - [[package]] name = "size" version = "0.4.1" @@ -6293,20 +5196,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "solang-parser" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c425ce1c59f4b154717592f0bdf4715c3a1d55058883622d3157e1f0908a5b26" -dependencies = [ - "itertools 0.11.0", - "lalrpop", - "lalrpop-util", - "phf", - "thiserror", - "unicode-xid", -] - [[package]] name = "sp1-build" version = "3.0.0" @@ -6333,7 +5222,7 @@ dependencies = [ "prettytable-rs", "rand 0.8.5", "regex", - "reqwest 0.12.9", + "reqwest", "rustc-demangle", "serde_json", "sp1-build", @@ -6343,7 +5232,7 @@ dependencies = [ "textwrap", "tokio", "vergen", - "yansi 1.0.1", + "yansi", ] [[package]] @@ -6482,7 +5371,7 @@ dependencies = [ "anyhow", "bincode", "clap", - "reqwest 0.12.9", + "reqwest", "serde", "serde_json", "slack-rust-rs", @@ -6735,7 +5624,6 @@ dependencies = [ "bincode", "cfg-if", "dirs", - "ethers", "futures", "hashbrown 0.14.5", "hex", @@ -6746,7 +5634,7 @@ dependencies = [ "p3-field", "p3-fri", "prost", - "reqwest 0.12.9", + "reqwest", "reqwest-middleware", "serde", "sp1-core-executor", @@ -6924,19 +5812,6 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "213701ba3370744dcd1a12960caa4843b3d68b4d1c0a5d575e0d65b2ee9d16c0" -[[package]] -name = "string_cache" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b" -dependencies = [ - "new_debug_unreachable", - "once_cell", - "parking_lot", - "phf_shared 0.10.0", - "precomputed-hash", -] - [[package]] name = "strsim" version = "0.10.0" @@ -7016,26 +5891,6 @@ dependencies = [ "web-sys", ] -[[package]] -name = "svm-rs" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11297baafe5fa0c99d5722458eac6a5e25c01eb1b8e5cd137f54079093daa7a4" -dependencies = [ - "dirs", - "fs2", - "hex", - "once_cell", - "reqwest 0.11.27", - "semver 1.0.23", - "serde", - "serde_json", - "sha2 0.10.8", - "thiserror", - "url", - "zip", -] - [[package]] name = "syn" version = "1.0.109" @@ -7100,36 +5955,15 @@ dependencies = [ "windows", ] -[[package]] -name = "system-configuration" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" -dependencies = [ - "bitflags 1.3.2", - "core-foundation", - "system-configuration-sys 0.5.0", -] - [[package]] name = "system-configuration" version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ - "bitflags 2.6.0", + "bitflags", "core-foundation", - "system-configuration-sys 0.6.0", -] - -[[package]] -name = "system-configuration-sys" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" -dependencies = [ - "core-foundation-sys", - "libc", + "system-configuration-sys", ] [[package]] @@ -7392,16 +6226,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "tokio-rustls" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" -dependencies = [ - "rustls 0.21.12", - "tokio", -] - [[package]] name = "tokio-rustls" version = "0.26.0" @@ -7424,21 +6248,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "tokio-tungstenite" -version = "0.20.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c" -dependencies = [ - "futures-util", - "log", - "rustls 0.21.12", - "tokio", - "tokio-rustls 0.24.1", - "tungstenite 0.20.1", - "webpki-roots 0.25.4", -] - [[package]] name = "tokio-util" version = "0.7.12" @@ -7452,26 +6261,11 @@ dependencies = [ "tokio", ] -[[package]] -name = "toml" -version = "0.8.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" -dependencies = [ - "serde", - "serde_spanned", - "toml_datetime", - "toml_edit 0.22.22", -] - [[package]] name = "toml_datetime" version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" -dependencies = [ - "serde", -] [[package]] name = "toml_edit" @@ -7491,8 +6285,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" dependencies = [ "indexmap 2.6.0", - "serde", - "serde_spanned", "toml_datetime", "winnow 0.6.20", ] @@ -7508,21 +6300,21 @@ dependencies = [ "axum", "base64 0.22.1", "bytes 1.8.0", - "h2 0.4.6", + "h2", "http 1.1.0", - "http-body 1.0.1", + "http-body", "http-body-util", - "hyper 1.5.0", + "hyper", "hyper-timeout", "hyper-util", "percent-encoding", "pin-project", "prost", "rustls-native-certs", - "rustls-pemfile 2.2.0", + "rustls-pemfile", "socket2", "tokio", - "tokio-rustls 0.26.0", + "tokio-rustls", "tokio-stream", "tower 0.4.13", "tower-layer", @@ -7688,26 +6480,6 @@ dependencies = [ "utf-8", ] -[[package]] -name = "tungstenite" -version = "0.20.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9" -dependencies = [ - "byteorder", - "bytes 1.8.0", - "data-encoding", - "http 0.2.12", - "httparse", - "log", - "rand 0.8.5", - "rustls 0.21.12", - "sha1 0.10.6", - "thiserror", - "url", - "utf-8", -] - [[package]] name = "twirp-build-rs" version = "0.13.0-succinct" @@ -7728,9 +6500,9 @@ dependencies = [ "futures", "http 1.1.0", "http-body-util", - "hyper 1.5.0", + "hyper", "prost", - "reqwest 0.12.9", + "reqwest", "serde", "serde_json", "thiserror", @@ -7860,16 +6632,6 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" -[[package]] -name = "uuid" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" -dependencies = [ - "getrandom 0.2.15", - "serde", -] - [[package]] name = "valuable" version = "0.1.0" @@ -8081,12 +6843,6 @@ dependencies = [ "webpki", ] -[[package]] -name = "webpki-roots" -version = "0.25.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" - [[package]] name = "webpki-roots" version = "0.26.6" @@ -8342,35 +7098,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "winreg" -version = "0.50.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] - -[[package]] -name = "ws_stream_wasm" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7999f5f4217fe3818726b66257a4475f71e74ffd190776ad053fa159e50737f5" -dependencies = [ - "async_io_stream", - "futures", - "js-sys", - "log", - "pharos", - "rustc_version 0.4.1", - "send_wrapper 0.6.0", - "thiserror", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - [[package]] name = "wyz" version = "0.5.1" @@ -8380,12 +7107,6 @@ dependencies = [ "tap", ] -[[package]] -name = "yansi" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" - [[package]] name = "yansi" version = "1.0.1" @@ -8433,26 +7154,6 @@ dependencies = [ "syn 2.0.85", ] -[[package]] -name = "zip" -version = "0.6.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261" -dependencies = [ - "aes 0.8.4", - "byteorder", - "bzip2", - "constant_time_eq 0.1.5", - "crc32fast", - "crossbeam-utils", - "flate2", - "hmac 0.12.1", - "pbkdf2 0.11.0", - "sha1 0.10.6", - "time 0.3.36", - "zstd", -] - [[package]] name = "zkhash" version = "0.2.0" @@ -8479,32 +7180,3 @@ dependencies = [ "sha3", "subtle", ] - -[[package]] -name = "zstd" -version = "0.11.2+zstd.1.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4" -dependencies = [ - "zstd-safe", -] - -[[package]] -name = "zstd-safe" -version = "5.0.2+zstd.1.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db" -dependencies = [ - "libc", - "zstd-sys", -] - -[[package]] -name = "zstd-sys" -version = "2.0.13+zstd.1.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38ff0f21cfee8f97d94cef41359e0c89aa6113028ab0291aa8ca0038995a95aa" -dependencies = [ - "cc", - "pkg-config", -] diff --git a/crates/sdk/Cargo.toml b/crates/sdk/Cargo.toml index 70cc3b3d0..9d3b66d6d 100644 --- a/crates/sdk/Cargo.toml +++ b/crates/sdk/Cargo.toml @@ -52,8 +52,6 @@ alloy-signer-local = { version = "0.5", optional = true } alloy-primitives = { version = "0.8", optional = true } backoff = { version = "0.4", features = ["tokio"], optional = true } -ethers = { version = "2", optional = true } - [features] default = ["network"] native-gnark = ["sp1-prover/native-gnark"] @@ -68,7 +66,6 @@ network = [ "dep:reqwest", "dep:twirp", "dep:reqwest-middleware", - "dep:ethers", ] network-v2 = [ "dep:prost", diff --git a/examples/Cargo.lock b/examples/Cargo.lock index 7c2770ece..7f81a3d41 100644 --- a/examples/Cargo.lock +++ b/examples/Cargo.lock @@ -2,16 +2,6 @@ # It is not intended for manual editing. version = 3 -[[package]] -name = "Inflector" -version = "0.11.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" -dependencies = [ - "lazy_static", - "regex", -] - [[package]] name = "addchain" version = "0.2.0" @@ -38,17 +28,6 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" -[[package]] -name = "aes" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" -dependencies = [ - "cfg-if", - "cipher", - "cpufeatures", -] - [[package]] name = "aggregation-program" version = "1.1.0" @@ -95,11 +74,11 @@ checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" [[package]] name = "alloy-chains" -version = "0.1.42" +version = "0.1.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dca4a1469a3e572e9ba362920ff145f5d0a00a3e71a64ddcb4a3659cf64c76a7" +checksum = "836cf02383d9ebb35502d379bcd1ae803155094077eaab9c29131d888cd5fa3e" dependencies = [ - "alloy-primitives 0.8.9", + "alloy-primitives 0.8.10", "alloy-rlp", "num_enum 0.7.3", "serde", @@ -113,7 +92,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "629b62e38d471cc15fea534eb7283d2f8a4e8bdb1811bcc5d66dda6cfce6fae1" dependencies = [ "alloy-eips 0.3.6", - "alloy-primitives 0.8.9", + "alloy-primitives 0.8.10", "alloy-rlp", "alloy-serde 0.3.6", "c-kzg", @@ -127,7 +106,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41ed961a48297c732a5d97ee321aa8bb5009ecadbcb077d8bec90cb54e651629" dependencies = [ "alloy-eips 0.5.4", - "alloy-primitives 0.8.9", + "alloy-primitives 0.8.10", "alloy-rlp", "alloy-serde 0.5.4", "auto_impl", @@ -142,7 +121,7 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0069cf0642457f87a01a014f6dc29d5d893cd4fd8fddf0c3cdfad1bb3ebafc41" dependencies = [ - "alloy-primitives 0.8.9", + "alloy-primitives 0.8.10", "alloy-rlp", "serde", ] @@ -153,7 +132,7 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea59dc42102bc9a1905dc57901edc6dd48b9f38115df86c7d252acba70d71d04" dependencies = [ - "alloy-primitives 0.8.9", + "alloy-primitives 0.8.10", "alloy-rlp", "k256", "serde", @@ -165,7 +144,7 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "64ffc577390ce50234e02d841214b3dc0bea6aaaae8e04bbf3cb82e9a45da9eb" dependencies = [ - "alloy-primitives 0.8.9", + "alloy-primitives 0.8.10", "alloy-rlp", "derive_more 1.0.0", "serde", @@ -179,7 +158,7 @@ checksum = "f923dd5fca5f67a43d81ed3ebad0880bd41f6dd0ada930030353ac356c54cd0f" dependencies = [ "alloy-eip2930", "alloy-eip7702 0.1.1", - "alloy-primitives 0.8.9", + "alloy-primitives 0.8.10", "alloy-rlp", "alloy-serde 0.3.6", "c-kzg", @@ -197,7 +176,7 @@ checksum = "b69e06cf9c37be824b9d26d6d101114fdde6af0c87de2828b414c05c4b3daa71" dependencies = [ "alloy-eip2930", "alloy-eip7702 0.3.2", - "alloy-primitives 0.8.9", + "alloy-primitives 0.8.10", "alloy-rlp", "alloy-serde 0.5.4", "c-kzg", @@ -213,18 +192,18 @@ version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3a7a18afb0b318616b6b2b0e2e7ac5529d32a966c673b48091c9919e284e6aca" dependencies = [ - "alloy-primitives 0.8.9", + "alloy-primitives 0.8.10", "alloy-serde 0.3.6", "serde", ] [[package]] name = "alloy-json-abi" -version = "0.8.9" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b5671117c38b1c2306891f97ad3828d85487087f54ebe2c7591a055ea5bcea7" +checksum = "31a0f0d51db8a1a30a4d98a9f90e090a94c8f44cb4d9eafc7e03aa6d00aae984" dependencies = [ - "alloy-primitives 0.8.9", + "alloy-primitives 0.8.10", "alloy-sol-type-parser", "serde", "serde_json", @@ -236,7 +215,7 @@ version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af5979e0d5a7bf9c7eb79749121e8256e59021af611322aee56e77e20776b4b3" dependencies = [ - "alloy-primitives 0.8.9", + "alloy-primitives 0.8.10", "alloy-sol-types", "serde", "serde_json", @@ -254,7 +233,7 @@ dependencies = [ "alloy-eips 0.5.4", "alloy-json-rpc", "alloy-network-primitives 0.5.4", - "alloy-primitives 0.8.9", + "alloy-primitives 0.8.10", "alloy-rpc-types-eth 0.5.4", "alloy-serde 0.5.4", "alloy-signer", @@ -272,7 +251,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94ad40869867ed2d9cd3842b1e800889e5b49e6b92da346e93862b4a741bedf3" dependencies = [ "alloy-eips 0.3.6", - "alloy-primitives 0.8.9", + "alloy-primitives 0.8.10", "alloy-serde 0.3.6", "serde", ] @@ -285,7 +264,7 @@ checksum = "514f70ee2a953db21631cd817b13a1571474ec77ddc03d47616d5e8203489fde" dependencies = [ "alloy-consensus 0.5.4", "alloy-eips 0.5.4", - "alloy-primitives 0.8.9", + "alloy-primitives 0.8.10", "alloy-serde 0.5.4", "serde", ] @@ -314,9 +293,9 @@ dependencies = [ [[package]] name = "alloy-primitives" -version = "0.8.9" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c71738eb20c42c5fb149571e76536a0f309d142f3957c28791662b96baf77a3d" +checksum = "8edae627382349b56cd6a7a2106f4fd69b243a9233e560c55c2e03cabb7e1d3c" dependencies = [ "alloy-rlp", "bytes", @@ -360,7 +339,7 @@ checksum = "2b09cae092c27b6f1bde952653a22708691802e57bfef4a2973b80bea21efd3f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -383,7 +362,7 @@ dependencies = [ "alloy-consensus 0.3.6", "alloy-eips 0.3.6", "alloy-network-primitives 0.3.6", - "alloy-primitives 0.8.9", + "alloy-primitives 0.8.10", "alloy-rlp", "alloy-serde 0.3.6", "alloy-sol-types", @@ -404,7 +383,7 @@ dependencies = [ "alloy-consensus 0.5.4", "alloy-eips 0.5.4", "alloy-network-primitives 0.5.4", - "alloy-primitives 0.8.9", + "alloy-primitives 0.8.10", "alloy-rlp", "alloy-serde 0.5.4", "alloy-sol-types", @@ -420,7 +399,7 @@ version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "731f75ec5d383107fd745d781619bd9cedf145836c51ecb991623d41278e71fa" dependencies = [ - "alloy-primitives 0.8.9", + "alloy-primitives 0.8.10", "serde", "serde_json", ] @@ -431,7 +410,7 @@ version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "028e72eaa9703e4882344983cfe7636ce06d8cce104a78ea62fd19b46659efc4" dependencies = [ - "alloy-primitives 0.8.9", + "alloy-primitives 0.8.10", "serde", "serde_json", ] @@ -442,7 +421,7 @@ version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "592c185d7100258c041afac51877660c7bf6213447999787197db4842f0e938e" dependencies = [ - "alloy-primitives 0.8.9", + "alloy-primitives 0.8.10", "async-trait", "auto_impl", "elliptic-curve", @@ -458,7 +437,7 @@ checksum = "6614f02fc1d5b079b2a4a5320018317b506fd0a6d67c1fd5542a71201724986c" dependencies = [ "alloy-consensus 0.5.4", "alloy-network", - "alloy-primitives 0.8.9", + "alloy-primitives 0.8.10", "alloy-signer", "async-trait", "k256", @@ -468,23 +447,23 @@ dependencies = [ [[package]] name = "alloy-sol-macro" -version = "0.8.9" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0900b83f4ee1f45c640ceee596afbc118051921b9438fdb5a3175c1a7e05f8b" +checksum = "841eabaa4710f719fddbc24c95d386eae313f07e6da4babc25830ee37945be0c" dependencies = [ "alloy-sol-macro-expander", "alloy-sol-macro-input", "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] name = "alloy-sol-macro-expander" -version = "0.8.9" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a41b1e78dde06b5e12e6702fa8c1d30621bf07728ba75b801fb801c9c6a0ba10" +checksum = "6672337f19d837b9f7073c45853aeb528ed9f7dd6a4154ce683e9e5cb7794014" dependencies = [ "alloy-sol-macro-input", "const-hex", @@ -493,31 +472,31 @@ dependencies = [ "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", "syn-solidity", "tiny-keccak", ] [[package]] name = "alloy-sol-macro-input" -version = "0.8.9" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91dc311a561a306664393407b88d3e53ae58581624128afd8a15faa5de3627dc" +checksum = "0dff37dd20bfb118b777c96eda83b2067f4226d2644c5cfa00187b3bc01770ba" dependencies = [ "const-hex", "dunce", "heck", "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", "syn-solidity", ] [[package]] name = "alloy-sol-type-parser" -version = "0.8.9" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45d1fbee9e698f3ba176b6e7a145f4aefe6d2b746b611e8bb246fe11a0e9f6c4" +checksum = "5b853d42292dbb159671a3edae3b2750277ff130f32b726fe07dc2b17aa6f2b5" dependencies = [ "serde", "winnow 0.6.20", @@ -525,12 +504,12 @@ dependencies = [ [[package]] name = "alloy-sol-types" -version = "0.8.9" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "086f41bc6ebcd8cb15f38ba20e47be38dd03692149681ce8061c35d960dbf850" +checksum = "aa828bb1b9a6dc52208fbb18084fb9ce2c30facc2bfda6a5d922349b4990354f" dependencies = [ "alloy-json-abi", - "alloy-primitives 0.8.9", + "alloy-primitives 0.8.10", "alloy-sol-macro", "const-hex", "serde", @@ -542,7 +521,7 @@ version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0a46c9c4fdccda7982e7928904bd85fe235a0404ee3d7e197fff13d61eac8b4f" dependencies = [ - "alloy-primitives 0.8.9", + "alloy-primitives 0.8.10", "alloy-rlp", "derive_more 1.0.0", "hashbrown 0.14.5", @@ -593,9 +572,9 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.9" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8365de52b16c035ff4fcafe0092ba9390540e3e352870ac09933bebcaa2c8c56" +checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" [[package]] name = "anstyle-parse" @@ -627,9 +606,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.91" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c042108f3ed77fd83760a5fd79b53be043192bb3b9dba91d8c574c0ada7850c8" +checksum = "74f37166d7d48a0284b99dd824694c26119c700b53bf0d1540cdb147dbdaaf13" [[package]] name = "ark-ff" @@ -773,15 +752,6 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" -[[package]] -name = "ascii-canvas" -version = "3.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8824ecca2e851cec16968d54a01dd372ef8f95b244fb84b84e70128be347c3c6" -dependencies = [ - "term", -] - [[package]] name = "async-trait" version = "0.1.83" @@ -790,18 +760,7 @@ checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", -] - -[[package]] -name = "async_io_stream" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6d7b9decdf35d8908a7e3ef02f64c5e9b1695e230154c0e8de3969142d9b94c" -dependencies = [ - "futures", - "pharos", - "rustc_version 0.4.1", + "syn 2.0.86", ] [[package]] @@ -822,7 +781,7 @@ checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -841,10 +800,10 @@ dependencies = [ "axum-core", "bytes", "futures-util", - "http 1.1.0", - "http-body 1.0.1", + "http", + "http-body", "http-body-util", - "hyper 1.5.0", + "hyper", "hyper-util", "itoa", "matchit", @@ -874,8 +833,8 @@ dependencies = [ "async-trait", "bytes", "futures-util", - "http 1.1.0", - "http-body 1.0.1", + "http", + "http-body", "http-body-util", "mime", "pin-project-lite", @@ -908,12 +867,6 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" -[[package]] -name = "base64" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" - [[package]] name = "base64" version = "0.21.7" @@ -932,12 +885,6 @@ version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" -[[package]] -name = "bech32" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445" - [[package]] name = "bincode" version = "1.3.3" @@ -953,7 +900,7 @@ version = "0.70.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f49d8fed880d473ea71efb9bf597651e77201bdd4893efe54c9e5d65ae04ce6f" dependencies = [ - "bitflags 2.6.0", + "bitflags", "cexpr", "clang-sys", "itertools 0.13.0", @@ -964,7 +911,7 @@ dependencies = [ "regex", "rustc-hash 1.1.0", "shlex", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -982,12 +929,6 @@ version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - [[package]] name = "bitflags" version = "2.6.0" @@ -1027,7 +968,7 @@ checksum = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780" dependencies = [ "arrayref", "arrayvec 0.7.6", - "constant_time_eq 0.3.1", + "constant_time_eq", ] [[package]] @@ -1090,7 +1031,7 @@ dependencies = [ "group 0.13.0", "pairing 0.23.0", "rand_core 0.6.4", - "sp1-lib 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp1-lib 3.1.0", "subtle", ] @@ -1123,16 +1064,6 @@ dependencies = [ "sp1-sdk", ] -[[package]] -name = "bs58" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" -dependencies = [ - "sha2 0.10.8", - "tinyvec", -] - [[package]] name = "bumpalo" version = "3.16.0" @@ -1162,7 +1093,7 @@ checksum = "bcfcc3cd946cb52f0bbfdbbcfa2f4e24f75ebb6c0e1002f7c25904fada18b9ec" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -1180,27 +1111,6 @@ dependencies = [ "serde", ] -[[package]] -name = "bzip2" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8" -dependencies = [ - "bzip2-sys", - "libc", -] - -[[package]] -name = "bzip2-sys" -version = "0.1.11+1.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc" -dependencies = [ - "cc", - "libc", - "pkg-config", -] - [[package]] name = "c-kzg" version = "1.0.3" @@ -1321,16 +1231,6 @@ dependencies = [ "windows-targets 0.52.6", ] -[[package]] -name = "cipher" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" -dependencies = [ - "crypto-common", - "inout", -] - [[package]] name = "clang-sys" version = "1.8.1" @@ -1373,7 +1273,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -1382,58 +1282,6 @@ version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" -[[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 0.10.8", - "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 0.8.5", - "sha2 0.10.8", - "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 0.14.7", - "hex", - "ripemd", - "serde", - "serde_derive", - "sha2 0.10.8", - "sha3", - "thiserror", -] - [[package]] name = "colorchoice" version = "1.0.3" @@ -1478,12 +1326,6 @@ version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" -[[package]] -name = "constant_time_eq" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" - [[package]] name = "constant_time_eq" version = "0.3.1" @@ -1505,16 +1347,6 @@ dependencies = [ "unicode-segmentation", ] -[[package]] -name = "core-foundation" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" -dependencies = [ - "core-foundation-sys", - "libc", -] - [[package]] name = "core-foundation-sys" version = "0.8.7" @@ -1545,15 +1377,6 @@ version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" -[[package]] -name = "crc32fast" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" -dependencies = [ - "cfg-if", -] - [[package]] name = "crossbeam-deque" version = "0.8.5" @@ -1617,15 +1440,6 @@ dependencies = [ "typenum", ] -[[package]] -name = "ctr" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" -dependencies = [ - "cipher", -] - [[package]] name = "ctrlc" version = "3.4.5" @@ -1648,7 +1462,7 @@ dependencies = [ "digest 0.10.7", "fiat-crypto", "rustc_version 0.4.1", - "sp1-lib 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp1-lib 3.1.0", "subtle", "zeroize", ] @@ -1660,7 +1474,7 @@ source = "git+https://github.com/sp1-patches/curve25519-dalek?tag=curve25519_dal dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -1673,7 +1487,7 @@ dependencies = [ "cfg-if", "digest 0.9.0", "rand_core 0.6.4", - "sp1-lib 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp1-lib 3.1.0", "subtle-ng", "zeroize", ] @@ -1681,14 +1495,14 @@ dependencies = [ [[package]] name = "curve25519-dalek-ng" version = "4.1.1" -source = "git+https://github.com/sp1-patches/curve25519-dalek-ng?branch=patch-v4.1.1#8dd77b20f3e78965a0cc57070a04465b9d52c49e" +source = "git+https://github.com/sp1-patches/curve25519-dalek-ng?branch=patch-v4.1.1#3fb3e7f6047ddeef0f0c9212f4604bd30d64bd28" dependencies = [ "anyhow", "byteorder", "cfg-if", "digest 0.9.0", "rand_core 0.6.4", - "sp1-lib 1.2.0", + "sp1-lib 3.1.0", "subtle-ng", "zeroize", ] @@ -1730,7 +1544,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -1741,7 +1555,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -1822,12 +1636,6 @@ dependencies = [ "rustversion", ] -[[package]] -name = "data-encoding" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" - [[package]] name = "der" version = "0.5.1" @@ -1881,7 +1689,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version 0.4.1", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -1902,7 +1710,7 @@ dependencies = [ "convert_case 0.6.0", "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", "unicode-xid", ] @@ -1936,16 +1744,6 @@ dependencies = [ "dirs-sys", ] -[[package]] -name = "dirs-next" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" -dependencies = [ - "cfg-if", - "dirs-sys-next", -] - [[package]] name = "dirs-sys" version = "0.4.1" @@ -1958,17 +1756,6 @@ dependencies = [ "windows-sys 0.48.0", ] -[[package]] -name = "dirs-sys-next" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" -dependencies = [ - "libc", - "redox_users", - "winapi", -] - [[package]] name = "downcast-rs" version = "1.2.1" @@ -2012,7 +1799,7 @@ dependencies = [ "elliptic-curve", "hex-literal", "signature", - "sp1-lib 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp1-lib 3.1.0", "spki 0.7.3", ] @@ -2085,48 +1872,12 @@ dependencies = [ "zeroize", ] -[[package]] -name = "ena" -version = "0.14.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d248bdd43ce613d87415282f69b9bb99d947d290b10962dd6c56233312c2ad5" -dependencies = [ - "log", -] - [[package]] name = "encode_unicode" version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" -[[package]] -name = "encoding_rs" -version = "0.8.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "enr" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a3d8dc56e02f954cac8eb489772c552c473346fc34f67412bb6244fd647f7e4" -dependencies = [ - "base64 0.21.7", - "bytes", - "hex", - "k256", - "log", - "rand 0.8.5", - "rlp", - "serde", - "sha3", - "zeroize", -] - [[package]] name = "enr" version = "0.12.1" @@ -2161,7 +1912,7 @@ checksum = "f282cfdfe92516eb26c2af8589c274c7c17681f5ecc03c18255fe741c6aa64eb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -2172,7 +1923,7 @@ checksum = "2f9ed6b3789237c8a0c1c505af1c7eb2c560df6186f01b098c3a1064ea532f38" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -2191,324 +1942,6 @@ dependencies = [ "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 0.8.5", - "scrypt", - "serde", - "serde_json", - "sha2 0.10.8", - "sha3", - "thiserror", - "uuid", -] - -[[package]] -name = "ethabi" -version = "18.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7413c5f74cc903ea37386a8965a936cbeb334bd270862fdece542c1b2dcbc898" -dependencies = [ - "ethereum-types", - "hex", - "once_cell", - "regex", - "serde", - "serde_json", - "sha3", - "thiserror", - "uint", -] - -[[package]] -name = "ethbloom" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c22d4b5885b6aa2fe5e8b9329fb8d232bf739e434e6b87347c63bdd00c120f60" -dependencies = [ - "crunchy", - "fixed-hash", - "impl-codec", - "impl-rlp", - "impl-serde", - "scale-info", - "tiny-keccak", -] - -[[package]] -name = "ethereum-types" -version = "0.14.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02d215cbf040552efcbe99a38372fe80ab9d00268e20012b79fcd0f073edd8ee" -dependencies = [ - "ethbloom", - "fixed-hash", - "impl-codec", - "impl-rlp", - "impl-serde", - "primitive-types", - "scale-info", - "uint", -] - -[[package]] -name = "ethers" -version = "2.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "816841ea989f0c69e459af1cf23a6b0033b19a55424a1ea3a30099becdb8dec0" -dependencies = [ - "ethers-addressbook", - "ethers-contract", - "ethers-core", - "ethers-etherscan", - "ethers-middleware", - "ethers-providers", - "ethers-signers", - "ethers-solc", -] - -[[package]] -name = "ethers-addressbook" -version = "2.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5495afd16b4faa556c3bba1f21b98b4983e53c1755022377051a975c3b021759" -dependencies = [ - "ethers-core", - "once_cell", - "serde", - "serde_json", -] - -[[package]] -name = "ethers-contract" -version = "2.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fceafa3578c836eeb874af87abacfb041f92b4da0a78a5edd042564b8ecdaaa" -dependencies = [ - "const-hex", - "ethers-contract-abigen", - "ethers-contract-derive", - "ethers-core", - "ethers-providers", - "futures-util", - "once_cell", - "pin-project", - "serde", - "serde_json", - "thiserror", -] - -[[package]] -name = "ethers-contract-abigen" -version = "2.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04ba01fbc2331a38c429eb95d4a570166781f14290ef9fdb144278a90b5a739b" -dependencies = [ - "Inflector", - "const-hex", - "dunce", - "ethers-core", - "ethers-etherscan", - "eyre", - "prettyplease", - "proc-macro2", - "quote", - "regex", - "reqwest 0.11.27", - "serde", - "serde_json", - "syn 2.0.85", - "toml", - "walkdir", -] - -[[package]] -name = "ethers-contract-derive" -version = "2.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87689dcabc0051cde10caaade298f9e9093d65f6125c14575db3fd8c669a168f" -dependencies = [ - "Inflector", - "const-hex", - "ethers-contract-abigen", - "ethers-core", - "proc-macro2", - "quote", - "serde_json", - "syn 2.0.85", -] - -[[package]] -name = "ethers-core" -version = "2.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82d80cc6ad30b14a48ab786523af33b37f28a8623fc06afd55324816ef18fb1f" -dependencies = [ - "arrayvec 0.7.6", - "bytes", - "cargo_metadata", - "chrono", - "const-hex", - "elliptic-curve", - "ethabi", - "generic-array 0.14.7", - "k256", - "num_enum 0.7.3", - "once_cell", - "open-fastrlp", - "rand 0.8.5", - "rlp", - "serde", - "serde_json", - "strum", - "syn 2.0.85", - "tempfile", - "thiserror", - "tiny-keccak", - "unicode-xid", -] - -[[package]] -name = "ethers-etherscan" -version = "2.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e79e5973c26d4baf0ce55520bd732314328cabe53193286671b47144145b9649" -dependencies = [ - "chrono", - "ethers-core", - "reqwest 0.11.27", - "semver 1.0.23", - "serde", - "serde_json", - "thiserror", - "tracing", -] - -[[package]] -name = "ethers-middleware" -version = "2.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48f9fdf09aec667c099909d91908d5eaf9be1bd0e2500ba4172c1d28bfaa43de" -dependencies = [ - "async-trait", - "auto_impl", - "ethers-contract", - "ethers-core", - "ethers-etherscan", - "ethers-providers", - "ethers-signers", - "futures-channel", - "futures-locks", - "futures-util", - "instant", - "reqwest 0.11.27", - "serde", - "serde_json", - "thiserror", - "tokio", - "tracing", - "tracing-futures", - "url", -] - -[[package]] -name = "ethers-providers" -version = "2.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6434c9a33891f1effc9c75472e12666db2fa5a0fec4b29af6221680a6fe83ab2" -dependencies = [ - "async-trait", - "auto_impl", - "base64 0.21.7", - "bytes", - "const-hex", - "enr 0.10.0", - "ethers-core", - "futures-core", - "futures-timer", - "futures-util", - "hashers", - "http 0.2.12", - "instant", - "jsonwebtoken", - "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-signers" -version = "2.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "228875491c782ad851773b652dd8ecac62cda8571d3bc32a5853644dd26766c2" -dependencies = [ - "async-trait", - "coins-bip32", - "coins-bip39", - "const-hex", - "elliptic-curve", - "eth-keystore", - "ethers-core", - "rand 0.8.5", - "sha2 0.10.8", - "thiserror", - "tracing", -] - -[[package]] -name = "ethers-solc" -version = "2.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66244a771d9163282646dbeffe0e6eca4dda4146b6498644e678ac6089b11edd" -dependencies = [ - "cfg-if", - "const-hex", - "dirs", - "dunce", - "ethers-core", - "glob", - "home", - "md-5", - "num_cpus", - "once_cell", - "path-slash", - "rayon", - "regex", - "semver 1.0.23", - "serde", - "serde_json", - "solang-parser", - "svm-rs", - "thiserror", - "tiny-keccak", - "tokio", - "tracing", - "walkdir", - "yansi", -] - [[package]] name = "eyre" version = "0.6.12" @@ -2632,22 +2065,6 @@ dependencies = [ "static_assertions", ] -[[package]] -name = "fixedbitset" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" - -[[package]] -name = "flate2" -version = "1.0.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1b589b4dc103969ad3cf85c950899926ec64300a1a46d76c03a6072957036f0" -dependencies = [ - "crc32fast", - "miniz_oxide", -] - [[package]] name = "flex-error" version = "0.4.4" @@ -2678,16 +2095,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" @@ -2742,16 +2149,6 @@ version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" -[[package]] -name = "futures-locks" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45ec6fe3675af967e67c5536c0b9d44e34e6c52f86bedc4ea49c5317b8e94d06" -dependencies = [ - "futures-channel", - "futures-task", -] - [[package]] name = "futures-macro" version = "0.3.31" @@ -2760,7 +2157,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -2775,16 +2172,6 @@ version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" -[[package]] -name = "futures-timer" -version = "3.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" -dependencies = [ - "gloo-timers", - "send_wrapper 0.4.0", -] - [[package]] name = "futures-util" version = "0.3.31" @@ -2809,15 +2196,6 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42012b0f064e01aa58b545fe3727f90f7dd4020f4a3ea735b50344965f5a57e9" -[[package]] -name = "fxhash" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" -dependencies = [ - "byteorder", -] - [[package]] name = "gcd" version = "2.3.0" @@ -2868,7 +2246,7 @@ version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b903b73e45dc0c6c596f2d37eccece7c1c8bb6e4407b001096387c63d0d93724" dependencies = [ - "bitflags 2.6.0", + "bitflags", "libc", "libgit2-sys", "log", @@ -2881,18 +2259,6 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" -[[package]] -name = "gloo-timers" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c" -dependencies = [ - "futures-channel", - "futures-core", - "js-sys", - "wasm-bindgen", -] - [[package]] name = "groth16-verifier-program" version = "1.1.0" @@ -2932,25 +2298,6 @@ dependencies = [ "subtle", ] -[[package]] -name = "h2" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" -dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http 0.2.12", - "indexmap 2.6.0", - "slab", - "tokio", - "tokio-util", - "tracing", -] - [[package]] name = "half" version = "1.8.3" @@ -3009,15 +2356,6 @@ dependencies = [ "serde", ] -[[package]] -name = "hashers" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2bca93b15ea5a746f220e56587f71e73c6165eab783df9e26590069953e3c30" -dependencies = [ - "fxhash", -] - [[package]] name = "heck" version = "0.5.0" @@ -3054,26 +2392,6 @@ dependencies = [ "digest 0.10.7", ] -[[package]] -name = "home" -version = "0.5.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" -dependencies = [ - "windows-sys 0.52.0", -] - -[[package]] -name = "http" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - [[package]] name = "http" version = "1.1.0" @@ -3085,17 +2403,6 @@ dependencies = [ "itoa", ] -[[package]] -name = "http-body" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" -dependencies = [ - "bytes", - "http 0.2.12", - "pin-project-lite", -] - [[package]] name = "http-body" version = "1.0.1" @@ -3103,7 +2410,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ "bytes", - "http 1.1.0", + "http", ] [[package]] @@ -3114,8 +2421,8 @@ checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" dependencies = [ "bytes", "futures-util", - "http 1.1.0", - "http-body 1.0.1", + "http", + "http-body", "pin-project-lite", ] @@ -3131,30 +2438,6 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" -[[package]] -name = "hyper" -version = "0.14.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c08302e8fa335b151b788c775ff56e7a03ae64ff85c548ee820fecb70356e85" -dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "h2", - "http 0.2.12", - "http-body 0.4.6", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "socket2", - "tokio", - "tower-service", - "tracing", - "want", -] - [[package]] name = "hyper" version = "1.5.0" @@ -3164,29 +2447,15 @@ dependencies = [ "bytes", "futures-channel", "futures-util", - "http 1.1.0", - "http-body 1.0.1", + "http", + "http-body", "httparse", "httpdate", "itoa", "pin-project-lite", "smallvec", "tokio", - "want", -] - -[[package]] -name = "hyper-rustls" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" -dependencies = [ - "futures-util", - "http 0.2.12", - "hyper 0.14.31", - "rustls 0.21.12", - "tokio", - "tokio-rustls 0.24.1", + "want", ] [[package]] @@ -3196,29 +2465,29 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333" dependencies = [ "futures-util", - "http 1.1.0", - "hyper 1.5.0", + "http", + "hyper", "hyper-util", - "rustls 0.23.15", + "rustls", "rustls-pki-types", "tokio", - "tokio-rustls 0.26.0", + "tokio-rustls", "tower-service", - "webpki-roots 0.26.6", + "webpki-roots", ] [[package]] name = "hyper-util" -version = "0.1.9" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41296eb09f183ac68eec06e03cdbea2e759633d4067b2f6552fc2e009bcad08b" +checksum = "df2dcfbe0677734ab2f3ffa7fa7bfd4706bfdc1ef393f2ee30184aed67e631b4" dependencies = [ "bytes", "futures-channel", "futures-util", - "http 1.1.0", - "http-body 1.0.1", - "hyper 1.5.0", + "http", + "http-body", + "hyper", "pin-project-lite", "socket2", "tokio", @@ -3274,24 +2543,6 @@ dependencies = [ "parity-scale-codec", ] -[[package]] -name = "impl-rlp" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f28220f89297a075ddc7245cd538076ee98b01f2a9c23a53a4f1105d5a322808" -dependencies = [ - "rlp", -] - -[[package]] -name = "impl-serde" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc88fc67028ae3db0c853baa36269d398d5f45b6982f95549ff5def78c935cd" -dependencies = [ - "serde", -] - [[package]] name = "impl-trait-for-tuples" version = "0.2.2" @@ -3344,15 +2595,6 @@ dependencies = [ "unicode-width", ] -[[package]] -name = "inout" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" -dependencies = [ - "generic-array 0.14.7", -] - [[package]] name = "instant" version = "0.1.13" @@ -3415,15 +2657,6 @@ dependencies = [ "either", ] -[[package]] -name = "itertools" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" -dependencies = [ - "either", -] - [[package]] name = "itertools" version = "0.12.1" @@ -3492,20 +2725,6 @@ dependencies = [ "sp1-sdk", ] -[[package]] -name = "jsonwebtoken" -version = "8.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378" -dependencies = [ - "base64 0.21.7", - "pem", - "ring 0.16.20", - "serde", - "serde_json", - "simple_asn1", -] - [[package]] name = "jubjub" version = "0.9.0" @@ -3563,37 +2782,7 @@ dependencies = [ "hex", "sha2 0.10.8", "sp1_bls12_381", - "spin 0.9.8", -] - -[[package]] -name = "lalrpop" -version = "0.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55cb077ad656299f160924eb2912aa147d7339ea7d69e1b5517326fdcec3c1ca" -dependencies = [ - "ascii-canvas", - "bit-set", - "ena", - "itertools 0.11.0", - "lalrpop-util", - "petgraph", - "regex", - "regex-syntax 0.8.5", - "string_cache", - "term", - "tiny-keccak", - "unicode-xid", - "walkdir", -] - -[[package]] -name = "lalrpop-util" -version = "0.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "507460a910eb7b32ee961886ff48539633b788a36b65692b95f225b844c82553" -dependencies = [ - "regex-automata 0.4.8", + "spin", ] [[package]] @@ -3602,7 +2791,7 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" dependencies = [ - "spin 0.9.8", + "spin", ] [[package]] @@ -3635,9 +2824,9 @@ dependencies = [ [[package]] name = "libm" -version = "0.2.9" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bda4c6077b0b08da2c48b172195795498381a7c8988c9e6212a6c55c5b9bd70" +checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" [[package]] name = "libredox" @@ -3645,7 +2834,7 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "bitflags 2.6.0", + "bitflags", "libc", ] @@ -3707,16 +2896,6 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" -[[package]] -name = "md-5" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" -dependencies = [ - "cfg-if", - "digest 0.10.7", -] - [[package]] name = "memchr" version = "2.7.4" @@ -3783,19 +2962,13 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "new_debug_unreachable" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" - [[package]] name = "nix" version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" dependencies = [ - "bitflags 2.6.0", + "bitflags", "cfg-if", "cfg_aliases", "libc", @@ -3917,7 +3090,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -4022,10 +3195,9 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" dependencies = [ - "proc-macro-crate 1.3.1", "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -4079,12 +3251,12 @@ checksum = "21aad1fbf80d2bcd7406880efc7ba109365f44bbb72896758ddcbfa46bf1592c" dependencies = [ "alloy-consensus 0.3.6", "alloy-eips 0.3.6", - "alloy-primitives 0.8.9", + "alloy-primitives 0.8.10", "alloy-rlp", "alloy-serde 0.3.6", "derive_more 1.0.0", "serde", - "spin 0.9.8", + "spin", ] [[package]] @@ -4095,7 +3267,7 @@ checksum = "e281fbfc2198b7c0c16457d6524f83d192662bc9f3df70f24c3038d4521616df" dependencies = [ "alloy-eips 0.3.6", "alloy-network-primitives 0.3.6", - "alloy-primitives 0.8.9", + "alloy-primitives 0.8.10", "alloy-rpc-types-eth 0.3.6", "alloy-serde 0.3.6", "cfg-if", @@ -4111,31 +3283,6 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" -[[package]] -name = "open-fastrlp" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "786393f80485445794f6043fd3138854dd109cc6c4bd1a6383db304c9ce9b9ce" -dependencies = [ - "arrayvec 0.7.6", - "auto_impl", - "bytes", - "ethereum-types", - "open-fastrlp-derive", -] - -[[package]] -name = "open-fastrlp-derive" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "003b2be5c6c53c1cfeb0a238b8a1c3915cd410feb684457a36c10038f764bb1c" -dependencies = [ - "bytes", - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "option-ext" version = "0.2.0" @@ -4457,17 +3604,6 @@ dependencies = [ "windows-targets 0.52.6", ] -[[package]] -name = "password-hash" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7676374caaee8a325c9e7a2ae557f216c5563a171d6997b0ef8a65af35147700" -dependencies = [ - "base64ct", - "rand_core 0.6.4", - "subtle", -] - [[package]] name = "pasta_curves" version = "0.4.1" @@ -4508,7 +3644,7 @@ checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" name = "patch-testing-program" version = "1.1.0" dependencies = [ - "alloy-primitives 0.8.9", + "alloy-primitives 0.8.10", "curve25519-dalek", "curve25519-dalek-ng 4.1.1 (git+https://github.com/sp1-patches/curve25519-dalek-ng?tag=curve25519_dalek_ng-v4.1.1-patch-v1)", "ed25519-consensus", @@ -4530,43 +3666,6 @@ dependencies = [ "sp1-sdk", ] -[[package]] -name = "path-slash" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e91099d4268b0e11973f036e885d652fb0b21fedcf69738c627f94db6a44f42" - -[[package]] -name = "pbkdf2" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" -dependencies = [ - "digest 0.10.7", - "hmac", - "password-hash", - "sha2 0.10.8", -] - -[[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 = "pem" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8" -dependencies = [ - "base64 0.13.1", -] - [[package]] name = "pem-rfc7468" version = "0.3.1" @@ -4602,97 +3701,6 @@ dependencies = [ "ucd-trie", ] -[[package]] -name = "petgraph" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" -dependencies = [ - "fixedbitset", - "indexmap 2.6.0", -] - -[[package]] -name = "pharos" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9567389417feee6ce15dd6527a8a1ecac205ef62c2932bcf3d9f6fc5b78b414" -dependencies = [ - "futures", - "rustc_version 0.4.1", -] - -[[package]] -name = "phf" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" -dependencies = [ - "phf_macros", - "phf_shared 0.11.2", -] - -[[package]] -name = "phf_generator" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0" -dependencies = [ - "phf_shared 0.11.2", - "rand 0.8.5", -] - -[[package]] -name = "phf_macros" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b" -dependencies = [ - "phf_generator", - "phf_shared 0.11.2", - "proc-macro2", - "quote", - "syn 2.0.85", -] - -[[package]] -name = "phf_shared" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" -dependencies = [ - "siphasher", -] - -[[package]] -name = "phf_shared" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" -dependencies = [ - "siphasher", -] - -[[package]] -name = "pin-project" -version = "1.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be57f64e946e500c8ee36ef6331845d40a93055567ec57e8fae13efd33759b95" -dependencies = [ - "pin-project-internal", -] - -[[package]] -name = "pin-project-internal" -version = "1.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c0f5fad0874fc7abcd4d750e76917eaebbecaa2c20bde22e1dbeeba8beb758c" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.85", -] - [[package]] name = "pin-project-lite" version = "0.2.15" @@ -4775,12 +3783,6 @@ dependencies = [ "zerocopy", ] -[[package]] -name = "precomputed-hash" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" - [[package]] name = "prettyplease" version = "0.2.25" @@ -4788,7 +3790,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "64d1ec885c64d0457d564db4ec299b2dae3f9c02808b8ad9c3a089c591b18033" dependencies = [ "proc-macro2", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -4808,9 +3810,6 @@ checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" dependencies = [ "fixed-hash", "impl-codec", - "impl-rlp", - "impl-serde", - "scale-info", "uint", ] @@ -4852,7 +3851,7 @@ dependencies = [ "proc-macro-error-attr2", "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -4872,7 +3871,7 @@ checksum = "b4c2511913b88df1637da85cc8d96ec8e43a3f8bb8ccb71ee1ac240d6f3df58d" dependencies = [ "bit-set", "bit-vec", - "bitflags 2.6.0", + "bitflags", "lazy_static", "num-traits", "rand 0.8.5", @@ -4914,7 +3913,7 @@ dependencies = [ "itertools 0.12.1", "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -4927,7 +3926,7 @@ dependencies = [ "itertools 0.13.0", "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -4956,7 +3955,7 @@ dependencies = [ "quinn-proto", "quinn-udp", "rustc-hash 2.0.0", - "rustls 0.23.15", + "rustls", "socket2", "thiserror", "tokio", @@ -4971,9 +3970,9 @@ checksum = "fadfaed2cd7f389d0161bb73eeb07b7b78f8691047a6f3e73caaeae55310a4a6" dependencies = [ "bytes", "rand 0.8.5", - "ring 0.17.8", + "ring", "rustc-hash 2.0.0", - "rustls 0.23.15", + "rustls", "slab", "thiserror", "tinyvec", @@ -4982,10 +3981,11 @@ dependencies = [ [[package]] name = "quinn-udp" -version = "0.5.5" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fe68c2e9e1a1234e218683dbdf9f9dfcb094113c5ac2b938dfcb9bab4c4140b" +checksum = "e346e016eacfff12233c243718197ca12f148c84e1e84268a896699b41c71780" dependencies = [ + "cfg_aliases", "libc", "once_cell", "socket2", @@ -5129,7 +4129,7 @@ version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f" dependencies = [ - "bitflags 2.6.0", + "bitflags", ] [[package]] @@ -5205,60 +4205,19 @@ checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "reqwest" -version = "0.11.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" -dependencies = [ - "base64 0.21.7", - "bytes", - "encoding_rs", - "futures-core", - "futures-util", - "h2", - "http 0.2.12", - "http-body 0.4.6", - "hyper 0.14.31", - "hyper-rustls 0.24.2", - "ipnet", - "js-sys", - "log", - "mime", - "once_cell", - "percent-encoding", - "pin-project-lite", - "rustls 0.21.12", - "rustls-pemfile 1.0.4", - "serde", - "serde_json", - "serde_urlencoded", - "sync_wrapper 0.1.2", - "system-configuration", - "tokio", - "tokio-rustls 0.24.1", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "webpki-roots 0.25.4", - "winreg", -] - -[[package]] -name = "reqwest" -version = "0.12.8" +version = "0.12.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f713147fbe92361e52392c73b8c9e48c04c6625bce969ef54dc901e58e042a7b" +checksum = "a77c62af46e79de0a562e1a9849205ffcb7fc1238876e9bd743357570e04046f" dependencies = [ "base64 0.22.1", "bytes", "futures-core", "futures-util", - "http 1.1.0", - "http-body 1.0.1", + "http", + "http-body", "http-body-util", - "hyper 1.5.0", - "hyper-rustls 0.27.3", + "hyper", + "hyper-rustls", "hyper-util", "ipnet", "js-sys", @@ -5268,15 +4227,15 @@ dependencies = [ "percent-encoding", "pin-project-lite", "quinn", - "rustls 0.23.15", - "rustls-pemfile 2.2.0", + "rustls", + "rustls-pemfile", "rustls-pki-types", "serde", "serde_json", "serde_urlencoded", "sync_wrapper 1.0.1", "tokio", - "tokio-rustls 0.26.0", + "tokio-rustls", "tokio-util", "tower-service", "url", @@ -5284,7 +4243,7 @@ dependencies = [ "wasm-bindgen-futures", "wasm-streams", "web-sys", - "webpki-roots 0.26.6", + "webpki-roots", "windows-registry", ] @@ -5296,8 +4255,8 @@ checksum = "562ceb5a604d3f7c885a792d42c199fd8af239d0a51b2fa6a78aafa092452b04" dependencies = [ "anyhow", "async-trait", - "http 1.1.0", - "reqwest 0.12.8", + "http", + "reqwest", "serde", "thiserror", "tower-service", @@ -5323,7 +4282,7 @@ dependencies = [ "alloy-chains", "alloy-eips 0.3.6", "alloy-genesis", - "alloy-primitives 0.8.9", + "alloy-primitives 0.8.10", "alloy-trie", "auto_impl", "derive_more 1.0.0", @@ -5345,7 +4304,7 @@ dependencies = [ "alloy-consensus 0.3.6", "alloy-eips 0.3.6", "alloy-genesis", - "alloy-primitives 0.8.9", + "alloy-primitives 0.8.10", "alloy-trie", "bytes", "modular-bitfield", @@ -5361,7 +4320,7 @@ dependencies = [ "convert_case 0.6.0", "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -5427,7 +4386,7 @@ version = "1.0.6" source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" dependencies = [ "alloy-chains", - "alloy-primitives 0.8.9", + "alloy-primitives 0.8.10", "alloy-rlp", "auto_impl", "crc", @@ -5500,7 +4459,7 @@ version = "1.0.6" source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" dependencies = [ "alloy-eips 0.3.6", - "alloy-primitives 0.8.9", + "alloy-primitives 0.8.10", "alloy-rlp", "derive_more 1.0.0", "nybbles", @@ -5537,9 +4496,9 @@ name = "reth-network-peers" version = "1.0.6" source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" dependencies = [ - "alloy-primitives 0.8.9", + "alloy-primitives 0.8.10", "alloy-rlp", - "enr 0.12.1", + "enr", "serde_with", "thiserror", "url", @@ -5551,7 +4510,7 @@ version = "1.0.6" source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" dependencies = [ "alloy-chains", - "alloy-primitives 0.8.9", + "alloy-primitives 0.8.10", "derive_more 1.0.0", "once_cell", "reth-chainspec", @@ -5580,7 +4539,7 @@ dependencies = [ "alloy-consensus 0.3.6", "alloy-eips 0.3.6", "alloy-genesis", - "alloy-primitives 0.8.9", + "alloy-primitives 0.8.10", "alloy-rlp", "alloy-rpc-types", "alloy-serde 0.3.6", @@ -5609,7 +4568,7 @@ dependencies = [ "alloy-consensus 0.3.6", "alloy-eips 0.3.6", "alloy-genesis", - "alloy-primitives 0.8.9", + "alloy-primitives 0.8.10", "alloy-rlp", "alloy-rpc-types-eth 0.3.6", "byteorder", @@ -5627,7 +4586,7 @@ name = "reth-prune-types" version = "1.0.6" source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" dependencies = [ - "alloy-primitives 0.8.9", + "alloy-primitives 0.8.10", "bytes", "derive_more 1.0.0", "modular-bitfield", @@ -5656,7 +4615,7 @@ name = "reth-stages-types" version = "1.0.6" source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" dependencies = [ - "alloy-primitives 0.8.9", + "alloy-primitives 0.8.10", "bytes", "modular-bitfield", "reth-codecs", @@ -5669,7 +4628,7 @@ name = "reth-static-file-types" version = "1.0.6" source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374182a43a3602aaa953d37aa9217b" dependencies = [ - "alloy-primitives 0.8.9", + "alloy-primitives 0.8.10", "derive_more 1.0.0", "serde", "strum", @@ -5728,7 +4687,7 @@ source = "git+https://github.com/sp1-patches/reth?tag=rsp-20240830#260c7ed2c9374 dependencies = [ "alloy-consensus 0.3.6", "alloy-genesis", - "alloy-primitives 0.8.9", + "alloy-primitives 0.8.10", "alloy-rlp", "alloy-trie", "bytes", @@ -5793,9 +4752,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e7a6bff9dbde3370a5ac9555104117f7e6039b3cc76e8d5d9d01899088beca2a" dependencies = [ "alloy-eips 0.3.6", - "alloy-primitives 0.8.9", + "alloy-primitives 0.8.10", "auto_impl", - "bitflags 2.6.0", + "bitflags", "bitvec", "c-kzg", "cfg-if", @@ -5817,21 +4776,6 @@ dependencies = [ "subtle", ] -[[package]] -name = "ring" -version = "0.16.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" -dependencies = [ - "cc", - "libc", - "once_cell", - "spin 0.5.2", - "untrusted 0.7.1", - "web-sys", - "winapi", -] - [[package]] name = "ring" version = "0.17.8" @@ -5842,8 +4786,8 @@ dependencies = [ "cfg-if", "getrandom", "libc", - "spin 0.9.8", - "untrusted 0.9.0", + "spin", + "untrusted", "windows-sys 0.52.0", ] @@ -5863,21 +4807,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" dependencies = [ "bytes", - "rlp-derive", "rustc-hex", ] -[[package]] -name = "rlp-derive" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e33d7b2abe0c340d8797fe2907d3f20d3b5ea5908683618bfe80df7f621f672a" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "roaring" version = "0.10.6" @@ -5962,7 +4894,7 @@ name = "rsp-client-executor" version = "0.1.0" source = "git+https://github.com/succinctlabs/rsp/?rev=3647076#3647076da6580e30384dd911a3fc50d4bcdb5bc1" dependencies = [ - "alloy-primitives 0.8.9", + "alloy-primitives 0.8.10", "alloy-rlp", "eyre", "futures", @@ -5995,7 +4927,7 @@ name = "rsp-mpt" version = "0.1.0" source = "git+https://github.com/succinctlabs/rsp/?rev=3647076#3647076da6580e30384dd911a3fc50d4bcdb5bc1" dependencies = [ - "alloy-primitives 0.8.9", + "alloy-primitives 0.8.10", "alloy-rlp", "alloy-rpc-types", "anyhow", @@ -6045,7 +4977,7 @@ dependencies = [ name = "rsp-script" version = "0.1.0" dependencies = [ - "alloy-primitives 0.8.9", + "alloy-primitives 0.8.10", "bincode", "clap", "rsp-client-executor", @@ -6146,7 +5078,7 @@ version = "0.38.38" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa260229e6538e52293eeb577aabd09945a09d6d9cc0fc550ed7529056c2e32a" dependencies = [ - "bitflags 2.6.0", + "bitflags", "errno", "libc", "linux-raw-sys", @@ -6155,39 +5087,18 @@ dependencies = [ [[package]] name = "rustls" -version = "0.21.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" -dependencies = [ - "log", - "ring 0.17.8", - "rustls-webpki 0.101.7", - "sct", -] - -[[package]] -name = "rustls" -version = "0.23.15" +version = "0.23.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fbb44d7acc4e873d613422379f69f237a1b141928c02f6bc6ccfddddc2d7993" +checksum = "eee87ff5d9b36712a58574e12e9f0ea80f915a5b0ac518d322b24a465617925e" dependencies = [ "once_cell", - "ring 0.17.8", + "ring", "rustls-pki-types", - "rustls-webpki 0.102.8", + "rustls-webpki", "subtle", "zeroize", ] -[[package]] -name = "rustls-pemfile" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" -dependencies = [ - "base64 0.21.7", -] - [[package]] name = "rustls-pemfile" version = "2.2.0" @@ -6199,19 +5110,9 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16f1201b3c9a7ee8039bcadc17b7e605e2945b27eee7631788c1bd2b0643674b" - -[[package]] -name = "rustls-webpki" -version = "0.101.7" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" -dependencies = [ - "ring 0.17.8", - "untrusted 0.9.0", -] +checksum = "16f1201b3c9a7ee8039bcadc17b7e605e2945b27eee7631788c1bd2b0643674b" [[package]] name = "rustls-webpki" @@ -6219,9 +5120,9 @@ version = "0.102.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" dependencies = [ - "ring 0.17.8", + "ring", "rustls-pki-types", - "untrusted 0.9.0", + "untrusted", ] [[package]] @@ -6248,24 +5149,6 @@ version = "1.0.18" 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" -dependencies = [ - "cipher", -] - -[[package]] -name = "same-file" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" -dependencies = [ - "winapi-util", -] - [[package]] name = "scale-info" version = "2.11.5" @@ -6287,7 +5170,7 @@ dependencies = [ "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -6305,28 +5188,6 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" -[[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 0.10.8", -] - -[[package]] -name = "sct" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" -dependencies = [ - "ring 0.17.8", - "untrusted 0.9.0", -] - [[package]] name = "sdd" version = "3.0.4" @@ -6395,23 +5256,11 @@ dependencies = [ "pest", ] -[[package]] -name = "send_wrapper" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f638d531eccd6e23b980caf34876660d38e265409d8e99b397ab71eb3612fad0" - -[[package]] -name = "send_wrapper" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" - [[package]] name = "serde" -version = "1.0.213" +version = "1.0.214" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ea7893ff5e2466df8d720bb615088341b295f849602c6956047f8f80f0e9bc1" +checksum = "f55c3193aca71c12ad7890f1785d2b73e1b9f63a0bbc353c08ef26fe03fc56b5" dependencies = [ "serde_derive", ] @@ -6437,13 +5286,13 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.213" +version = "1.0.214" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e85ad2009c50b58e87caa8cd6dac16bdf511bbfb7af6c33df902396aa480fa5" +checksum = "de523f781f095e28fa605cdce0f8307e451cc0fd14e2eb4cd2e98a355b147766" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -6477,16 +5326,7 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", -] - -[[package]] -name = "serde_spanned" -version = "0.6.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" -dependencies = [ - "serde", + "syn 2.0.86", ] [[package]] @@ -6528,7 +5368,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -6553,18 +5393,7 @@ checksum = "82fe9db325bcef1fbcde82e078a5cc4efdf787e96b3b9cf45b50b529f2083d67" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", -] - -[[package]] -name = "sha1" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest 0.10.7", + "syn 2.0.86", ] [[package]] @@ -6655,24 +5484,6 @@ dependencies = [ "rand_core 0.6.4", ] -[[package]] -name = "simple_asn1" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085" -dependencies = [ - "num-bigint 0.4.6", - "num-traits", - "thiserror", - "time", -] - -[[package]] -name = "siphasher" -version = "0.3.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" - [[package]] name = "size" version = "0.4.1" @@ -6717,20 +5528,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "solang-parser" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c425ce1c59f4b154717592f0bdf4715c3a1d55058883622d3157e1f0908a5b26" -dependencies = [ - "itertools 0.11.0", - "lalrpop", - "lalrpop-util", - "phf", - "thiserror", - "unicode-xid", -] - [[package]] name = "sp1-build" version = "3.0.0" @@ -6887,9 +5684,9 @@ dependencies = [ [[package]] name = "sp1-lib" -version = "3.0.0" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c372b16988e765af85ccf958b18b26d89c05886f2592d313a285415dcc769cb" +checksum = "14deb700469a37ec075bcf88dac3815b026dd9c4b9cb175980826f1fbb2e4e80" dependencies = [ "bincode", "serde", @@ -7076,7 +5873,6 @@ dependencies = [ "bincode", "cfg-if", "dirs", - "ethers", "futures", "hashbrown 0.14.5", "hex", @@ -7087,7 +5883,7 @@ dependencies = [ "p3-field", "p3-fri", "prost 0.13.3", - "reqwest 0.12.8", + "reqwest", "reqwest-middleware", "serde", "sp1-core-executor", @@ -7180,12 +5976,6 @@ dependencies = [ "subtle", ] -[[package]] -name = "spin" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" - [[package]] name = "spin" version = "0.9.8" @@ -7268,19 +6058,6 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" -[[package]] -name = "string_cache" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b" -dependencies = [ - "new_debug_unreachable", - "once_cell", - "parking_lot", - "phf_shared 0.10.0", - "precomputed-hash", -] - [[package]] name = "strsim" version = "0.11.1" @@ -7306,7 +6083,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -7321,7 +6098,7 @@ dependencies = [ "lazy_static", "rand 0.8.5", "rustc-hex", - "sp1-lib 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp1-lib 3.1.0", ] [[package]] @@ -7337,7 +6114,7 @@ dependencies = [ "num-bigint 0.4.6", "rand 0.8.5", "rustc-hex", - "sp1-lib 3.0.0 (registry+https://github.com/rust-lang/crates.io-index)", + "sp1-lib 3.1.0", ] [[package]] @@ -7361,26 +6138,6 @@ version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "734676eb262c623cec13c3155096e08d1f8f29adce39ba17948b18dad1e54142" -[[package]] -name = "svm-rs" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11297baafe5fa0c99d5722458eac6a5e25c01eb1b8e5cd137f54079093daa7a4" -dependencies = [ - "dirs", - "fs2", - "hex", - "once_cell", - "reqwest 0.11.27", - "semver 1.0.23", - "serde", - "serde_json", - "sha2 0.10.8", - "thiserror", - "url", - "zip", -] - [[package]] name = "syn" version = "1.0.109" @@ -7394,9 +6151,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.85" +version = "2.0.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5023162dfcd14ef8f32034d8bcd4cc5ddc61ef7a247c024a33e24e1f24d21b56" +checksum = "e89275301d38033efb81a6e60e3497e734dfcc62571f2854bf4b16690398824c" dependencies = [ "proc-macro2", "quote", @@ -7405,14 +6162,14 @@ dependencies = [ [[package]] name = "syn-solidity" -version = "0.8.9" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d5e0c2ea8db64b2898b62ea2fbd60204ca95e0b2c6bdf53ff768bbe916fbe4d" +checksum = "16320d4a2021ba1a32470b3759676114a918885e9800e68ad60f2c67969fba62" dependencies = [ "paste", "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -7457,27 +6214,6 @@ dependencies = [ "windows", ] -[[package]] -name = "system-configuration" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" -dependencies = [ - "bitflags 1.3.2", - "core-foundation", - "system-configuration-sys", -] - -[[package]] -name = "system-configuration-sys" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" -dependencies = [ - "core-foundation-sys", - "libc", -] - [[package]] name = "tap" version = "1.0.1" @@ -7577,35 +6313,24 @@ dependencies = [ "tendermint-light-client-verifier", ] -[[package]] -name = "term" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f" -dependencies = [ - "dirs-next", - "rustversion", - "winapi", -] - [[package]] name = "thiserror" -version = "1.0.65" +version = "1.0.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d11abd9594d9b38965ef50805c5e469ca9cc6f197f883f717e0269a3057b3d5" +checksum = "5d171f59dbaa811dbbb1aee1e73db92ec2b122911a48e1390dfe327a821ddede" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.65" +version = "1.0.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae71770322cbd277e69d762a16c444af02aa0575ac0d174f0b9562d3b37f8602" +checksum = "b08be0f17bd307950653ce45db00cd31200d82b624b36e181337d9c7d92765b5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -7730,17 +6455,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", -] - -[[package]] -name = "tokio-rustls" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" -dependencies = [ - "rustls 0.21.12", - "tokio", + "syn 2.0.86", ] [[package]] @@ -7749,26 +6464,11 @@ version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" dependencies = [ - "rustls 0.23.15", + "rustls", "rustls-pki-types", "tokio", ] -[[package]] -name = "tokio-tungstenite" -version = "0.20.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c" -dependencies = [ - "futures-util", - "log", - "rustls 0.21.12", - "tokio", - "tokio-rustls 0.24.1", - "tungstenite", - "webpki-roots 0.25.4", -] - [[package]] name = "tokio-util" version = "0.7.12" @@ -7782,26 +6482,11 @@ dependencies = [ "tokio", ] -[[package]] -name = "toml" -version = "0.8.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" -dependencies = [ - "serde", - "serde_spanned", - "toml_datetime", - "toml_edit 0.22.22", -] - [[package]] name = "toml_datetime" version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" -dependencies = [ - "serde", -] [[package]] name = "toml_edit" @@ -7821,8 +6506,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" dependencies = [ "indexmap 2.6.0", - "serde", - "serde_spanned", "toml_datetime", "winnow 0.6.20", ] @@ -7875,7 +6558,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -7901,16 +6584,6 @@ dependencies = [ "tracing-subscriber", ] -[[package]] -name = "tracing-futures" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" -dependencies = [ - "pin-project", - "tracing", -] - [[package]] name = "tracing-log" version = "0.2.0" @@ -7946,26 +6619,6 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" -[[package]] -name = "tungstenite" -version = "0.20.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9" -dependencies = [ - "byteorder", - "bytes", - "data-encoding", - "http 0.2.12", - "httparse", - "log", - "rand 0.8.5", - "rustls 0.21.12", - "sha1", - "thiserror", - "url", - "utf-8", -] - [[package]] name = "twirp-rs" version = "0.13.0-succinct" @@ -7975,11 +6628,11 @@ dependencies = [ "async-trait", "axum", "futures", - "http 1.1.0", + "http", "http-body-util", - "hyper 1.5.0", + "hyper", "prost 0.13.3", - "reqwest 0.12.8", + "reqwest", "serde", "serde_json", "thiserror", @@ -8057,12 +6710,6 @@ version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" -[[package]] -name = "untrusted" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" - [[package]] name = "untrusted" version = "0.9.0" @@ -8080,28 +6727,12 @@ dependencies = [ "percent-encoding", ] -[[package]] -name = "utf-8" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" - [[package]] name = "utf8parse" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" -[[package]] -name = "uuid" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" -dependencies = [ - "getrandom", - "serde", -] - [[package]] name = "valuable" version = "0.1.0" @@ -8151,16 +6782,6 @@ dependencies = [ "libc", ] -[[package]] -name = "walkdir" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" -dependencies = [ - "same-file", - "winapi-util", -] - [[package]] name = "want" version = "0.3.1" @@ -8198,7 +6819,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", "wasm-bindgen-shared", ] @@ -8232,7 +6853,7 @@ checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -8276,12 +6897,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "webpki-roots" -version = "0.25.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" - [[package]] name = "webpki-roots" version = "0.26.6" @@ -8307,15 +6922,6 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" -[[package]] -name = "winapi-util" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" -dependencies = [ - "windows-sys 0.48.0", -] - [[package]] name = "winapi-x86_64-pc-windows-gnu" version = "0.4.0" @@ -8537,35 +7143,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "winreg" -version = "0.50.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] - -[[package]] -name = "ws_stream_wasm" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7999f5f4217fe3818726b66257a4475f71e74ffd190776ad053fa159e50737f5" -dependencies = [ - "async_io_stream", - "futures", - "js-sys", - "log", - "pharos", - "rustc_version 0.4.1", - "send_wrapper 0.6.0", - "thiserror", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - [[package]] name = "wyz" version = "0.5.1" @@ -8575,12 +7152,6 @@ dependencies = [ "tap", ] -[[package]] -name = "yansi" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" - [[package]] name = "zerocopy" version = "0.7.35" @@ -8599,7 +7170,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -8619,27 +7190,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", -] - -[[package]] -name = "zip" -version = "0.6.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261" -dependencies = [ - "aes", - "byteorder", - "bzip2", - "constant_time_eq 0.1.5", - "crc32fast", - "crossbeam-utils", - "flate2", - "hmac", - "pbkdf2 0.11.0", - "sha1", - "time", - "zstd", + "syn 2.0.86", ] [[package]] @@ -8669,35 +7220,6 @@ dependencies = [ "subtle", ] -[[package]] -name = "zstd" -version = "0.11.2+zstd.1.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4" -dependencies = [ - "zstd-safe", -] - -[[package]] -name = "zstd-safe" -version = "5.0.2+zstd.1.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db" -dependencies = [ - "libc", - "zstd-sys", -] - -[[package]] -name = "zstd-sys" -version = "2.0.13+zstd.1.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38ff0f21cfee8f97d94cef41359e0c89aa6113028ab0291aa8ca0038995a95aa" -dependencies = [ - "cc", - "pkg-config", -] - [[patch.unused]] name = "ecdsa" version = "0.16.8" From 4b482208022f2b8842680cb2e2c6f8b936d6dc15 Mon Sep 17 00:00:00 2001 From: Yuwen Zhang Date: Fri, 1 Nov 2024 16:49:03 -0700 Subject: [PATCH 07/14] merge dev --- Cargo.lock | 89 ++-- crates/core/executor/src/dependencies.rs | 119 ++--- crates/core/executor/src/disassembler/rrs.rs | 57 +- crates/core/executor/src/events/alu.rs | 4 +- crates/core/executor/src/events/byte.rs | 2 +- crates/core/executor/src/events/cpu.rs | 8 + crates/core/executor/src/events/memory.rs | 8 +- crates/core/executor/src/events/utils.rs | 37 +- crates/core/executor/src/executor.rs | 486 ++++++++++-------- crates/core/executor/src/instruction.rs | 4 +- crates/core/executor/src/memory.rs | 27 +- crates/core/executor/src/opcode.rs | 2 +- crates/core/executor/src/program.rs | 7 - crates/core/executor/src/record.rs | 71 +-- crates/core/executor/src/register.rs | 4 +- .../src/syscalls/precompiles/sha256/extend.rs | 10 +- crates/core/machine/Cargo.toml | 1 - crates/core/machine/src/alu/add_sub/mod.rs | 66 ++- crates/core/machine/src/alu/divrem/mod.rs | 28 +- crates/core/machine/src/alu/lt/mod.rs | 51 +- crates/core/machine/src/alu/mul/mod.rs | 283 +++++----- crates/core/machine/src/alu/sr/mod.rs | 73 ++- .../machine/src/cpu/columns/instruction.rs | 6 +- crates/core/machine/src/cpu/columns/opcode.rs | 2 +- crates/core/machine/src/cpu/trace.rs | 201 ++++---- crates/core/machine/src/memory/local.rs | 76 ++- crates/core/machine/src/memory/program.rs | 61 +-- crates/core/machine/src/program/mod.rs | 58 +-- crates/core/machine/src/runtime/utils.rs | 8 +- .../precompiles/edwards/ed_decompress.rs | 2 +- crates/prover/src/lib.rs | 8 +- crates/prover/src/shapes.rs | 21 +- .../recursion/circuit/src/machine/deferred.rs | 2 +- .../compiler/src/circuit/compiler.rs | 5 +- .../core/src/chips/poseidon2_skinny/trace.rs | 4 - .../core/src/chips/poseidon2_wide/trace.rs | 4 - crates/recursion/core/src/runtime/memory.rs | 2 +- crates/recursion/core/src/runtime/mod.rs | 16 - examples/Cargo.lock | 3 +- 39 files changed, 965 insertions(+), 951 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b8f3da3ef..749e66474 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -273,7 +273,7 @@ checksum = "2b09cae092c27b6f1bde952653a22708691802e57bfef4a2973b80bea21efd3f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -347,7 +347,7 @@ dependencies = [ "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -363,7 +363,7 @@ dependencies = [ "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", "syn-solidity", "tiny-keccak", ] @@ -379,7 +379,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", "syn-solidity", ] @@ -453,9 +453,9 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.9" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8365de52b16c035ff4fcafe0092ba9390540e3e352870ac09933bebcaa2c8c56" +checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" [[package]] name = "anstyle-parse" @@ -487,9 +487,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.91" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c042108f3ed77fd83760a5fd79b53be043192bb3b9dba91d8c574c0ada7850c8" +checksum = "74f37166d7d48a0284b99dd824694c26119c700b53bf0d1540cdb147dbdaaf13" dependencies = [ "backtrace", ] @@ -767,7 +767,7 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -797,7 +797,7 @@ checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -827,7 +827,7 @@ checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -983,7 +983,7 @@ dependencies = [ "regex", "rustc-hash 1.1.0", "shlex", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -1124,7 +1124,7 @@ checksum = "bcfcc3cd946cb52f0bbfdbbcfa2f4e24f75ebb6c0e1002f7c25904fada18b9ec" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -1323,7 +1323,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -1632,7 +1632,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -1795,7 +1795,7 @@ checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", "unicode-xid", ] @@ -1964,7 +1964,7 @@ checksum = "f282cfdfe92516eb26c2af8589c274c7c17681f5ecc03c18255fe741c6aa64eb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -2247,7 +2247,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -3469,7 +3469,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -3876,7 +3876,7 @@ checksum = "3c0f5fad0874fc7abcd4d750e76917eaebbecaa2c20bde22e1dbeeba8beb758c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -4006,7 +4006,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "64d1ec885c64d0457d564db4ec299b2dae3f9c02808b8ad9c3a089c591b18033" dependencies = [ "proc-macro2", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -4072,7 +4072,7 @@ dependencies = [ "proc-macro-error-attr2", "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -4137,7 +4137,7 @@ dependencies = [ "prost", "prost-types", "regex", - "syn 2.0.85", + "syn 2.0.86", "tempfile", ] @@ -4151,7 +4151,7 @@ dependencies = [ "itertools 0.13.0", "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -4760,7 +4760,7 @@ dependencies = [ "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -4804,7 +4804,7 @@ checksum = "7f81c2fde025af7e69b1d1420531c8a8811ca898919db177141a85313b1cb932" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -4919,7 +4919,7 @@ checksum = "de523f781f095e28fa605cdce0f8307e451cc0fd14e2eb4cd2e98a355b147766" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -5011,7 +5011,7 @@ checksum = "82fe9db325bcef1fbcde82e078a5cc4efdf787e96b3b9cf45b50b529f2083d67" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -5313,7 +5313,6 @@ dependencies = [ "tracing-forest", "tracing-subscriber", "typenum", - "vec_map", "web-time", ] @@ -5843,13 +5842,13 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] name = "substrate-bn" version = "0.6.0" -source = "git+https://github.com/sp1-patches/bn?tag=substrate_bn-v0.6.0-patch-v2#a1974dba1f3b75c16b48a84037edc12b36bba1cf" +source = "git+https://github.com/sp1-patches/bn?tag=substrate_bn-v0.6.0-patch-v2#201cc196da216656044e61fea7f68707b6896662" dependencies = [ "bytemuck", "byteorder", @@ -5904,9 +5903,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.85" +version = "2.0.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5023162dfcd14ef8f32034d8bcd4cc5ddc61ef7a247c024a33e24e1f24d21b56" +checksum = "e89275301d38033efb81a6e60e3497e734dfcc62571f2854bf4b16690398824c" dependencies = [ "proc-macro2", "quote", @@ -5922,7 +5921,7 @@ dependencies = [ "paste", "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -6025,22 +6024,22 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.65" +version = "1.0.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d11abd9594d9b38965ef50805c5e469ca9cc6f197f883f717e0269a3057b3d5" +checksum = "5d171f59dbaa811dbbb1aee1e73db92ec2b122911a48e1390dfe327a821ddede" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.65" +version = "1.0.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae71770322cbd277e69d762a16c444af02aa0575ac0d174f0b9562d3b37f8602" +checksum = "b08be0f17bd307950653ce45db00cd31200d82b624b36e181337d9c7d92765b5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -6213,7 +6212,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -6390,7 +6389,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -6746,7 +6745,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", "wasm-bindgen-shared", ] @@ -6780,7 +6779,7 @@ checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -7131,7 +7130,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] @@ -7151,7 +7150,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.85", + "syn 2.0.86", ] [[package]] diff --git a/crates/core/executor/src/dependencies.rs b/crates/core/executor/src/dependencies.rs index 6b0bbbe33..194d8d0eb 100644 --- a/crates/core/executor/src/dependencies.rs +++ b/crates/core/executor/src/dependencies.rs @@ -1,5 +1,5 @@ use crate::{ - events::AluEvent, + events::{create_alu_lookups, AluEvent, CpuEvent}, utils::{get_msb, get_quotient_and_remainder, is_signed_operation}, Executor, Opcode, }; @@ -7,7 +7,6 @@ use crate::{ /// Emits the dependencies for division and remainder operations. #[allow(clippy::too_many_lines)] pub fn emit_divrem_dependencies(executor: &mut Executor, event: AluEvent) { - let shard = executor.shard(); let (quotient, remainder) = get_quotient_and_remainder(event.b, event.c, event.opcode); let c_msb = get_msb(event.c); let rem_msb = get_msb(remainder); @@ -20,29 +19,27 @@ pub fn emit_divrem_dependencies(executor: &mut Executor, event: AluEvent) { } if c_neg == 1 { - let ids = executor.record.create_lookup_ids(); executor.record.add_events.push(AluEvent { lookup_id: event.sub_lookups[4], - shard, + shard: event.shard, clk: event.clk, opcode: Opcode::ADD, a: 0, b: event.c, c: (event.c as i32).unsigned_abs(), - sub_lookups: ids, + sub_lookups: create_alu_lookups(), }); } if rem_neg == 1 { - let ids = executor.record.create_lookup_ids(); executor.record.add_events.push(AluEvent { lookup_id: event.sub_lookups[5], - shard, + shard: event.shard, clk: event.clk, opcode: Opcode::ADD, a: 0, b: remainder, c: (remainder as i32).unsigned_abs(), - sub_lookups: ids, + sub_lookups: create_alu_lookups(), }); } @@ -58,19 +55,19 @@ pub fn emit_divrem_dependencies(executor: &mut Executor, event: AluEvent) { let lower_multiplication = AluEvent { lookup_id: event.sub_lookups[0], - shard, + shard: event.shard, clk: event.clk, opcode: Opcode::MUL, a: lower_word, c: event.c, b: quotient, - sub_lookups: executor.record.create_lookup_ids(), + sub_lookups: create_alu_lookups(), }; executor.record.mul_events.push(lower_multiplication); let upper_multiplication = AluEvent { lookup_id: event.sub_lookups[1], - shard, + shard: event.shard, clk: event.clk, opcode: { if is_signed_operation { @@ -82,31 +79,31 @@ pub fn emit_divrem_dependencies(executor: &mut Executor, event: AluEvent) { a: upper_word, c: event.c, b: quotient, - sub_lookups: executor.record.create_lookup_ids(), + sub_lookups: create_alu_lookups(), }; executor.record.mul_events.push(upper_multiplication); let lt_event = if is_signed_operation { AluEvent { lookup_id: event.sub_lookups[2], - shard, + shard: event.shard, opcode: Opcode::SLTU, a: 1, b: (remainder as i32).unsigned_abs(), c: u32::max(1, (event.c as i32).unsigned_abs()), clk: event.clk, - sub_lookups: executor.record.create_lookup_ids(), + sub_lookups: create_alu_lookups(), } } else { AluEvent { lookup_id: event.sub_lookups[3], - shard, + shard: event.shard, opcode: Opcode::SLTU, a: 1, b: remainder, c: u32::max(1, event.c), clk: event.clk, - sub_lookups: executor.record.create_lookup_ids(), + sub_lookups: create_alu_lookups(), } }; @@ -117,12 +114,9 @@ pub fn emit_divrem_dependencies(executor: &mut Executor, event: AluEvent) { /// Emit the dependencies for CPU events. #[allow(clippy::too_many_lines)] -pub fn emit_cpu_dependencies(executor: &mut Executor, index: usize) { - let event = executor.record.cpu_events[index]; - let shard = executor.shard(); - let instruction = &executor.program.fetch(event.pc); +pub fn emit_cpu_dependencies(executor: &mut Executor, event: &CpuEvent) { if matches!( - instruction.opcode, + event.instruction.opcode, Opcode::LB | Opcode::LH | Opcode::LW @@ -136,57 +130,58 @@ pub fn emit_cpu_dependencies(executor: &mut Executor, index: usize) { // Add event to ALU check to check that addr == b + c let add_event = AluEvent { lookup_id: event.memory_add_lookup_id, - shard, + shard: event.shard, clk: event.clk, opcode: Opcode::ADD, a: memory_addr, b: event.b, c: event.c, - sub_lookups: executor.record.create_lookup_ids(), + sub_lookups: create_alu_lookups(), }; executor.record.add_events.push(add_event); let addr_offset = (memory_addr % 4_u32) as u8; let mem_value = event.memory_record.unwrap().value(); - if matches!(instruction.opcode, Opcode::LB | Opcode::LH) { - let (unsigned_mem_val, most_sig_mem_value_byte, sign_value) = match instruction.opcode { - Opcode::LB => { - let most_sig_mem_value_byte = mem_value.to_le_bytes()[addr_offset as usize]; - let sign_value = 256; - (most_sig_mem_value_byte as u32, most_sig_mem_value_byte, sign_value) - } - Opcode::LH => { - let sign_value = 65536; - let unsigned_mem_val = match (addr_offset >> 1) % 2 { - 0 => mem_value & 0x0000FFFF, - 1 => (mem_value & 0xFFFF0000) >> 16, - _ => unreachable!(), - }; - let most_sig_mem_value_byte = unsigned_mem_val.to_le_bytes()[1]; - (unsigned_mem_val, most_sig_mem_value_byte, sign_value) - } - _ => unreachable!(), - }; + if matches!(event.instruction.opcode, Opcode::LB | Opcode::LH) { + let (unsigned_mem_val, most_sig_mem_value_byte, sign_value) = + match event.instruction.opcode { + Opcode::LB => { + let most_sig_mem_value_byte = mem_value.to_le_bytes()[addr_offset as usize]; + let sign_value = 256; + (most_sig_mem_value_byte as u32, most_sig_mem_value_byte, sign_value) + } + Opcode::LH => { + let sign_value = 65536; + let unsigned_mem_val = match (addr_offset >> 1) % 2 { + 0 => mem_value & 0x0000FFFF, + 1 => (mem_value & 0xFFFF0000) >> 16, + _ => unreachable!(), + }; + let most_sig_mem_value_byte = unsigned_mem_val.to_le_bytes()[1]; + (unsigned_mem_val, most_sig_mem_value_byte, sign_value) + } + _ => unreachable!(), + }; if most_sig_mem_value_byte >> 7 & 0x01 == 1 { let sub_event = AluEvent { lookup_id: event.memory_sub_lookup_id, - shard, + shard: event.shard, clk: event.clk, opcode: Opcode::SUB, a: event.a, b: unsigned_mem_val, c: sign_value, - sub_lookups: executor.record.create_lookup_ids(), + sub_lookups: create_alu_lookups(), }; executor.record.add_events.push(sub_event); } } } - if instruction.is_branch_instruction() { + if event.instruction.is_branch_instruction() { let a_eq_b = event.a == event.b; - let use_signed_comparison = matches!(instruction.opcode, Opcode::BLT | Opcode::BGE); + let use_signed_comparison = matches!(event.instruction.opcode, Opcode::BLT | Opcode::BGE); let a_lt_b = if use_signed_comparison { (event.a as i32) < (event.b as i32) } else { @@ -202,27 +197,27 @@ pub fn emit_cpu_dependencies(executor: &mut Executor, index: usize) { // Add the ALU events for the comparisons let lt_comp_event = AluEvent { lookup_id: event.branch_lt_lookup_id, - shard, + shard: event.shard, clk: event.clk, opcode: alu_op_code, a: a_lt_b as u32, b: event.a, c: event.b, - sub_lookups: executor.record.create_lookup_ids(), + sub_lookups: create_alu_lookups(), }; let gt_comp_event = AluEvent { lookup_id: event.branch_gt_lookup_id, - shard, + shard: event.shard, clk: event.clk, opcode: alu_op_code, a: a_gt_b as u32, b: event.b, c: event.a, - sub_lookups: executor.record.create_lookup_ids(), + sub_lookups: create_alu_lookups(), }; executor.record.lt_events.push(lt_comp_event); executor.record.lt_events.push(gt_comp_event); - let branching = match instruction.opcode { + let branching = match event.instruction.opcode { Opcode::BEQ => a_eq_b, Opcode::BNE => !a_eq_b, Opcode::BLT | Opcode::BLTU => a_lt_b, @@ -233,31 +228,31 @@ pub fn emit_cpu_dependencies(executor: &mut Executor, index: usize) { let next_pc = event.pc.wrapping_add(event.c); let add_event = AluEvent { lookup_id: event.branch_add_lookup_id, - shard, + shard: event.shard, clk: event.clk, opcode: Opcode::ADD, a: next_pc, b: event.pc, c: event.c, - sub_lookups: executor.record.create_lookup_ids(), + sub_lookups: create_alu_lookups(), }; executor.record.add_events.push(add_event); } } - if instruction.is_jump_instruction() { - match instruction.opcode { + if event.instruction.is_jump_instruction() { + match event.instruction.opcode { Opcode::JAL => { let next_pc = event.pc.wrapping_add(event.b); let add_event = AluEvent { lookup_id: event.jump_jal_lookup_id, - shard, + shard: event.shard, clk: event.clk, opcode: Opcode::ADD, a: next_pc, b: event.pc, c: event.b, - sub_lookups: executor.record.create_lookup_ids(), + sub_lookups: create_alu_lookups(), }; executor.record.add_events.push(add_event); } @@ -265,13 +260,13 @@ pub fn emit_cpu_dependencies(executor: &mut Executor, index: usize) { let next_pc = event.b.wrapping_add(event.c); let add_event = AluEvent { lookup_id: event.jump_jalr_lookup_id, - shard, + shard: event.shard, clk: event.clk, opcode: Opcode::ADD, a: next_pc, b: event.b, c: event.c, - sub_lookups: executor.record.create_lookup_ids(), + sub_lookups: create_alu_lookups(), }; executor.record.add_events.push(add_event); } @@ -279,16 +274,16 @@ pub fn emit_cpu_dependencies(executor: &mut Executor, index: usize) { } } - if matches!(instruction.opcode, Opcode::AUIPC) { + if matches!(event.instruction.opcode, Opcode::AUIPC) { let add_event = AluEvent { lookup_id: event.auipc_lookup_id, - shard, + shard: event.shard, clk: event.clk, opcode: Opcode::ADD, a: event.a, b: event.pc, c: event.b, - sub_lookups: executor.record.create_lookup_ids(), + sub_lookups: create_alu_lookups(), }; executor.record.add_events.push(add_event); } diff --git a/crates/core/executor/src/disassembler/rrs.rs b/crates/core/executor/src/disassembler/rrs.rs index a105e10a8..711dbe4e4 100644 --- a/crates/core/executor/src/disassembler/rrs.rs +++ b/crates/core/executor/src/disassembler/rrs.rs @@ -9,31 +9,52 @@ impl Instruction { /// Create a new [`Instruction`] from an R-type instruction. #[must_use] pub const fn from_r_type(opcode: Opcode, dec_insn: &RType) -> Self { - Self::new(opcode, dec_insn.rd as u8, dec_insn.rs1 as u32, dec_insn.rs2 as u32, false, false) + Self::new( + opcode, + dec_insn.rd as u32, + dec_insn.rs1 as u32, + dec_insn.rs2 as u32, + false, + false, + ) } /// Create a new [`Instruction`] from an I-type instruction. #[must_use] pub const fn from_i_type(opcode: Opcode, dec_insn: &IType) -> Self { - Self::new(opcode, dec_insn.rd as u8, dec_insn.rs1 as u32, dec_insn.imm as u32, false, true) + Self::new(opcode, dec_insn.rd as u32, dec_insn.rs1 as u32, dec_insn.imm as u32, false, true) } /// Create a new [`Instruction`] from an I-type instruction with a shamt. #[must_use] pub const fn from_i_type_shamt(opcode: Opcode, dec_insn: &ITypeShamt) -> Self { - Self::new(opcode, dec_insn.rd as u8, dec_insn.rs1 as u32, dec_insn.shamt, false, true) + Self::new(opcode, dec_insn.rd as u32, dec_insn.rs1 as u32, dec_insn.shamt, false, true) } /// Create a new [`Instruction`] from an S-type instruction. #[must_use] pub const fn from_s_type(opcode: Opcode, dec_insn: &SType) -> Self { - Self::new(opcode, dec_insn.rs2 as u8, dec_insn.rs1 as u32, dec_insn.imm as u32, false, true) + Self::new( + opcode, + dec_insn.rs2 as u32, + dec_insn.rs1 as u32, + dec_insn.imm as u32, + false, + true, + ) } /// Create a new [`Instruction`] from a B-type instruction. #[must_use] pub const fn from_b_type(opcode: Opcode, dec_insn: &BType) -> Self { - Self::new(opcode, dec_insn.rs1 as u8, dec_insn.rs2 as u32, dec_insn.imm as u32, false, true) + Self::new( + opcode, + dec_insn.rs1 as u32, + dec_insn.rs2 as u32, + dec_insn.imm as u32, + false, + true, + ) } /// Create a new [`Instruction`] that is not implemented. @@ -61,9 +82,9 @@ impl Instruction { #[must_use] pub fn r_type(&self) -> (Register, Register, Register) { ( - Register::from_u8(self.op_a), - Register::from_u8(self.op_b as u8), - Register::from_u8(self.op_c as u8), + Register::from_u32(self.op_a), + Register::from_u32(self.op_b), + Register::from_u32(self.op_c), ) } @@ -71,35 +92,35 @@ impl Instruction { #[inline] #[must_use] pub fn i_type(&self) -> (Register, Register, u32) { - (Register::from_u8(self.op_a), Register::from_u8(self.op_b as u8), self.op_c) + (Register::from_u32(self.op_a), Register::from_u32(self.op_b), self.op_c) } /// Decode the [`Instruction`] in the S-type format. #[inline] #[must_use] pub fn s_type(&self) -> (Register, Register, u32) { - (Register::from_u8(self.op_a), Register::from_u8(self.op_b as u8), self.op_c) + (Register::from_u32(self.op_a), Register::from_u32(self.op_b), self.op_c) } /// Decode the [`Instruction`] in the B-type format. #[inline] #[must_use] pub fn b_type(&self) -> (Register, Register, u32) { - (Register::from_u8(self.op_a), Register::from_u8(self.op_b as u8), self.op_c) + (Register::from_u32(self.op_a), Register::from_u32(self.op_b), self.op_c) } /// Decode the [`Instruction`] in the J-type format. #[inline] #[must_use] pub fn j_type(&self) -> (Register, u32) { - (Register::from_u8(self.op_a), self.op_b) + (Register::from_u32(self.op_a), self.op_b) } /// Decode the [`Instruction`] in the U-type format. #[inline] #[must_use] pub fn u_type(&self) -> (Register, u32) { - (Register::from_u8(self.op_a), self.op_b) + (Register::from_u32(self.op_a), self.op_b) } } @@ -242,13 +263,13 @@ impl InstructionProcessor for InstructionTranspiler { } fn process_jal(&mut self, dec_insn: JType) -> Self::InstructionResult { - Instruction::new(Opcode::JAL, dec_insn.rd as u8, dec_insn.imm as u32, 0, true, true) + Instruction::new(Opcode::JAL, dec_insn.rd as u32, dec_insn.imm as u32, 0, true, true) } fn process_jalr(&mut self, dec_insn: IType) -> Self::InstructionResult { Instruction::new( Opcode::JALR, - dec_insn.rd as u8, + dec_insn.rd as u32, dec_insn.rs1 as u32, dec_insn.imm as u32, false, @@ -261,14 +282,14 @@ impl InstructionProcessor for InstructionTranspiler { // // Notably, LUI instructions are converted to an SLL instruction with `imm_b` and `imm_c` // turned on. Additionally the `op_c` should be set to 12. - Instruction::new(Opcode::ADD, dec_insn.rd as u8, 0, dec_insn.imm as u32, true, true) + Instruction::new(Opcode::ADD, dec_insn.rd as u32, 0, dec_insn.imm as u32, true, true) } /// AUIPC instructions have the third operand set to imm << 12. fn process_auipc(&mut self, dec_insn: UType) -> Self::InstructionResult { Instruction::new( Opcode::AUIPC, - dec_insn.rd as u8, + dec_insn.rd as u32, dec_insn.imm as u32, dec_insn.imm as u32, true, @@ -279,7 +300,7 @@ impl InstructionProcessor for InstructionTranspiler { fn process_ecall(&mut self) -> Self::InstructionResult { Instruction::new( Opcode::ECALL, - Register::X5 as u8, + Register::X5 as u32, Register::X10 as u32, Register::X11 as u32, false, diff --git a/crates/core/executor/src/events/alu.rs b/crates/core/executor/src/events/alu.rs index 2d2b14fe0..bf79a65e4 100644 --- a/crates/core/executor/src/events/alu.rs +++ b/crates/core/executor/src/events/alu.rs @@ -2,7 +2,7 @@ use serde::{Deserialize, Serialize}; use crate::Opcode; -use super::{create_random_lookup_ids, LookupId}; +use super::{create_alu_lookups, LookupId}; /// Arithmetic Logic Unit (ALU) Event. /// @@ -40,7 +40,7 @@ impl AluEvent { a, b, c, - sub_lookups: create_random_lookup_ids(), + sub_lookups: create_alu_lookups(), } } } diff --git a/crates/core/executor/src/events/byte.rs b/crates/core/executor/src/events/byte.rs index 3db5c7647..4e5f25437 100644 --- a/crates/core/executor/src/events/byte.rs +++ b/crates/core/executor/src/events/byte.rs @@ -233,7 +233,7 @@ impl ByteOpcode { ByteOpcode::MSB, ByteOpcode::U16Range, ]; - debug_assert_eq!(opcodes.len(), NUM_BYTE_OPS); + assert_eq!(opcodes.len(), NUM_BYTE_OPS); opcodes } diff --git a/crates/core/executor/src/events/cpu.rs b/crates/core/executor/src/events/cpu.rs index f609e941c..b2d775cf1 100644 --- a/crates/core/executor/src/events/cpu.rs +++ b/crates/core/executor/src/events/cpu.rs @@ -1,5 +1,7 @@ use serde::{Deserialize, Serialize}; +use crate::Instruction; + use super::{memory::MemoryRecordEnum, LookupId}; /// CPU Event. @@ -8,12 +10,16 @@ use super::{memory::MemoryRecordEnum, LookupId}; /// shard, opcode, operands, and other relevant information. #[derive(Debug, Copy, Clone, Serialize, Deserialize)] pub struct CpuEvent { + /// The shard number. + pub shard: u32, /// The clock cycle. pub clk: u32, /// The program counter. pub pc: u32, /// The next program counter. pub next_pc: u32, + /// The instruction. + pub instruction: Instruction, /// The first operand. pub a: u32, /// The first operand memory record. @@ -26,6 +32,8 @@ pub struct CpuEvent { pub c: u32, /// The third operand memory record. pub c_record: Option, + /// The memory value. + pub memory: Option, /// The memory record. pub memory_record: Option, /// The exit code. diff --git a/crates/core/executor/src/events/memory.rs b/crates/core/executor/src/events/memory.rs index 655e0fc21..4372f2126 100644 --- a/crates/core/executor/src/events/memory.rs +++ b/crates/core/executor/src/events/memory.rs @@ -150,9 +150,7 @@ impl MemoryReadRecord { prev_shard: u32, prev_timestamp: u32, ) -> Self { - debug_assert!( - shard > prev_shard || ((shard == prev_shard) && (timestamp > prev_timestamp)) - ); + assert!(shard > prev_shard || ((shard == prev_shard) && (timestamp > prev_timestamp))); Self { value, shard, timestamp, prev_shard, prev_timestamp } } } @@ -168,9 +166,7 @@ impl MemoryWriteRecord { prev_shard: u32, prev_timestamp: u32, ) -> Self { - debug_assert!( - shard > prev_shard || ((shard == prev_shard) && (timestamp > prev_timestamp)), - ); + assert!(shard > prev_shard || ((shard == prev_shard) && (timestamp > prev_timestamp)),); Self { value, shard, timestamp, prev_value, prev_shard, prev_timestamp } } } diff --git a/crates/core/executor/src/events/utils.rs b/crates/core/executor/src/events/utils.rs index d4b38df74..681bc6cc7 100644 --- a/crates/core/executor/src/events/utils.rs +++ b/crates/core/executor/src/events/utils.rs @@ -5,16 +5,43 @@ use std::{ iter::{Map, Peekable}, }; +use rand::{thread_rng, Rng}; + /// A unique identifier for lookups. +/// +/// We use 4 u32s instead of a u128 to make it compatible with C. #[derive(Deserialize, Serialize, Debug, Clone, Copy, Default, Eq, Hash, PartialEq)] -pub struct LookupId(pub u64); +pub struct LookupId { + /// First part of the id. + pub a: u32, + /// Second part of the id. + pub b: u32, + /// Third part of the id. + pub c: u32, + /// Fourth part of the id. + pub d: u32, +} + +/// Creates a new ALU lookup id with ``LookupId`` +#[must_use] +pub fn create_alu_lookup_id() -> LookupId { + let mut rng = thread_rng(); + LookupId { a: rng.gen(), b: rng.gen(), c: rng.gen(), d: rng.gen() } +} -/// Create a random lookup id. This is slower than `record.create_lookup_id()` but is useful for -/// testing. +/// Creates a new ALU lookup id with ``LookupId`` #[must_use] -pub(crate) fn create_random_lookup_ids() -> [LookupId; 6] { - std::array::from_fn(|_| LookupId(rand::random())) +pub fn create_alu_lookups() -> [LookupId; 6] { + let mut rng = thread_rng(); + [ + LookupId { a: rng.gen(), b: rng.gen(), c: rng.gen(), d: rng.gen() }, + LookupId { a: rng.gen(), b: rng.gen(), c: rng.gen(), d: rng.gen() }, + LookupId { a: rng.gen(), b: rng.gen(), c: rng.gen(), d: rng.gen() }, + LookupId { a: rng.gen(), b: rng.gen(), c: rng.gen(), d: rng.gen() }, + LookupId { a: rng.gen(), b: rng.gen(), c: rng.gen(), d: rng.gen() }, + LookupId { a: rng.gen(), b: rng.gen(), c: rng.gen(), d: rng.gen() }, + ] } /// Returns sorted and formatted rows of a table of counts (e.g. `opcode_counts`). diff --git a/crates/core/executor/src/executor.rs b/crates/core/executor/src/executor.rs index 3fc3403fb..e1032882d 100644 --- a/crates/core/executor/src/executor.rs +++ b/crates/core/executor/src/executor.rs @@ -13,8 +13,9 @@ use crate::{ context::SP1Context, dependencies::{emit_cpu_dependencies, emit_divrem_dependencies}, events::{ - AluEvent, CpuEvent, LookupId, MemoryAccessPosition, MemoryInitializeFinalizeEvent, - MemoryLocalEvent, MemoryReadRecord, MemoryRecord, MemoryWriteRecord, SyscallEvent, + create_alu_lookup_id, create_alu_lookups, AluEvent, CpuEvent, LookupId, + MemoryAccessPosition, MemoryInitializeFinalizeEvent, MemoryLocalEvent, MemoryReadRecord, + MemoryRecord, MemoryWriteRecord, SyscallEvent, }, hook::{HookEnv, HookRegistry}, memory::{Entry, PagedMemory}, @@ -272,7 +273,7 @@ impl<'a> Executor<'a> { pub fn registers(&mut self) -> [u32; 32] { let mut registers = [0; 32]; for i in 0..32 { - let addr = Register::from_u8(i as u8) as u32; + let addr = Register::from_u32(i as u32) as u32; let record = self.state.memory.get(addr); // Only add the previous memory state to checkpoint map if we're in checkpoint mode, @@ -410,7 +411,7 @@ impl<'a> Executor<'a> { record.shard = shard; record.timestamp = timestamp; - if !self.unconstrained && self.executor_mode == ExecutorMode::Trace { + if !self.unconstrained { let local_memory_access = if let Some(local_memory_access) = local_memory_access { local_memory_access } else { @@ -489,7 +490,7 @@ impl<'a> Executor<'a> { record.shard = shard; record.timestamp = timestamp; - if !self.unconstrained && self.executor_mode == ExecutorMode::Trace { + if !self.unconstrained { let local_memory_access = if let Some(local_memory_access) = local_memory_access { local_memory_access } else { @@ -556,19 +557,19 @@ impl<'a> Executor<'a> { if !self.unconstrained && self.executor_mode == ExecutorMode::Trace { match position { MemoryAccessPosition::A => { - debug_assert!(self.memory_accesses.a.is_none()); + assert!(self.memory_accesses.a.is_none()); self.memory_accesses.a = Some(record.into()); } MemoryAccessPosition::B => { - debug_assert!(self.memory_accesses.b.is_none()); + assert!(self.memory_accesses.b.is_none()); self.memory_accesses.b = Some(record.into()); } MemoryAccessPosition::C => { - debug_assert!(self.memory_accesses.c.is_none()); + assert!(self.memory_accesses.c.is_none()); self.memory_accesses.c = Some(record.into()); } MemoryAccessPosition::Memory => { - debug_assert!(self.memory_accesses.memory.is_none()); + assert!(self.memory_accesses.memory.is_none()); self.memory_accesses.memory = Some(record.into()); } } @@ -596,50 +597,49 @@ impl<'a> Executor<'a> { #[allow(clippy::too_many_arguments)] fn emit_cpu( &mut self, + shard: u32, clk: u32, pc: u32, next_pc: u32, + instruction: Instruction, a: u32, b: u32, c: u32, + memory_store_value: Option, record: MemoryAccessRecord, exit_code: u32, lookup_id: LookupId, syscall_lookup_id: LookupId, ) { - let memory_add_lookup_id = self.record.create_lookup_id(); - let memory_sub_lookup_id = self.record.create_lookup_id(); - let branch_lt_lookup_id = self.record.create_lookup_id(); - let branch_gt_lookup_id = self.record.create_lookup_id(); - let branch_add_lookup_id = self.record.create_lookup_id(); - let jump_jal_lookup_id = self.record.create_lookup_id(); - let jump_jalr_lookup_id = self.record.create_lookup_id(); - let auipc_lookup_id = self.record.create_lookup_id(); - self.record.cpu_events.push(CpuEvent { + let cpu_event = CpuEvent { + shard, clk, pc, next_pc, + instruction, a, a_record: record.a, b, b_record: record.b, c, c_record: record.c, + memory: memory_store_value, memory_record: record.memory, exit_code, alu_lookup_id: lookup_id, syscall_lookup_id, - memory_add_lookup_id, - memory_sub_lookup_id, - branch_lt_lookup_id, - branch_gt_lookup_id, - branch_add_lookup_id, - jump_jal_lookup_id, - jump_jalr_lookup_id, - auipc_lookup_id, - }); + memory_add_lookup_id: create_alu_lookup_id(), + memory_sub_lookup_id: create_alu_lookup_id(), + branch_lt_lookup_id: create_alu_lookup_id(), + branch_gt_lookup_id: create_alu_lookup_id(), + branch_add_lookup_id: create_alu_lookup_id(), + jump_jal_lookup_id: create_alu_lookup_id(), + jump_jalr_lookup_id: create_alu_lookup_id(), + auipc_lookup_id: create_alu_lookup_id(), + }; - emit_cpu_dependencies(self, self.record.cpu_events.len() - 1); + self.record.cpu_events.push(cpu_event); + emit_cpu_dependencies(self, &cpu_event); } /// Emit an ALU event. @@ -652,7 +652,7 @@ impl<'a> Executor<'a> { a, b, c, - sub_lookups: self.record.create_lookup_ids(), + sub_lookups: create_alu_lookups(), }; match opcode { Opcode::ADD => { @@ -700,7 +700,7 @@ impl<'a> Executor<'a> { arg1, arg2, lookup_id, - nonce: self.record.nonce_lookup[lookup_id.0 as usize], + nonce: self.record.nonce_lookup[&lookup_id], } } @@ -729,9 +729,9 @@ impl<'a> Executor<'a> { let (rd, b, c) = (rd, self.rr(rs1, MemoryAccessPosition::B), imm); (rd, b, c) } else { - debug_assert!(instruction.imm_b && instruction.imm_c); + assert!(instruction.imm_b && instruction.imm_c); let (rd, b, c) = - (Register::from_u8(instruction.op_a), instruction.op_b, instruction.op_c); + (Register::from_u32(instruction.op_a), instruction.op_b, instruction.op_c); (rd, b, c) } } @@ -784,7 +784,8 @@ impl<'a> Executor<'a> { /// Fetch the instruction at the current program counter. #[inline] fn fetch(&self) -> Instruction { - *self.program.fetch(self.state.pc) + let idx = ((self.state.pc - self.program.pc_base) / 4) as usize; + self.program.instructions[idx] } /// Execute the given instruction over the current state of the runtime. @@ -796,18 +797,21 @@ impl<'a> Executor<'a> { let mut next_pc = self.state.pc.wrapping_add(4); + let rd: Register; let (a, b, c): (u32, u32, u32); + let (addr, memory_read_value): (u32, u32); + let mut memory_store_value: Option = None; if self.executor_mode == ExecutorMode::Trace { self.memory_accesses = MemoryAccessRecord::default(); } let lookup_id = if self.executor_mode == ExecutorMode::Trace { - self.record.create_lookup_id() + create_alu_lookup_id() } else { LookupId::default() }; let syscall_lookup_id = if self.executor_mode == ExecutorMode::Trace { - self.record.create_lookup_id() + create_alu_lookup_id() } else { LookupId::default() }; @@ -842,40 +846,182 @@ impl<'a> Executor<'a> { match instruction.opcode { // Arithmetic instructions. - Opcode::ADD - | Opcode::SUB - | Opcode::XOR - | Opcode::OR - | Opcode::AND - | Opcode::SLL - | Opcode::SRL - | Opcode::SRA - | Opcode::SLT - | Opcode::SLTU - | Opcode::MUL - | Opcode::MULH - | Opcode::MULHU - | Opcode::MULHSU - | Opcode::DIV - | Opcode::DIVU - | Opcode::REM - | Opcode::REMU => { - (a, b, c) = self.execute_alu(instruction, lookup_id); + Opcode::ADD => { + (rd, b, c) = self.alu_rr(instruction); + a = b.wrapping_add(c); + self.alu_rw(instruction, rd, a, b, c, lookup_id); + } + Opcode::SUB => { + (rd, b, c) = self.alu_rr(instruction); + a = b.wrapping_sub(c); + self.alu_rw(instruction, rd, a, b, c, lookup_id); + } + Opcode::XOR => { + (rd, b, c) = self.alu_rr(instruction); + a = b ^ c; + self.alu_rw(instruction, rd, a, b, c, lookup_id); + } + Opcode::OR => { + (rd, b, c) = self.alu_rr(instruction); + a = b | c; + self.alu_rw(instruction, rd, a, b, c, lookup_id); + } + Opcode::AND => { + (rd, b, c) = self.alu_rr(instruction); + a = b & c; + self.alu_rw(instruction, rd, a, b, c, lookup_id); + } + Opcode::SLL => { + (rd, b, c) = self.alu_rr(instruction); + a = b.wrapping_shl(c); + self.alu_rw(instruction, rd, a, b, c, lookup_id); + } + Opcode::SRL => { + (rd, b, c) = self.alu_rr(instruction); + a = b.wrapping_shr(c); + self.alu_rw(instruction, rd, a, b, c, lookup_id); + } + Opcode::SRA => { + (rd, b, c) = self.alu_rr(instruction); + a = (b as i32).wrapping_shr(c) as u32; + self.alu_rw(instruction, rd, a, b, c, lookup_id); + } + Opcode::SLT => { + (rd, b, c) = self.alu_rr(instruction); + a = if (b as i32) < (c as i32) { 1 } else { 0 }; + self.alu_rw(instruction, rd, a, b, c, lookup_id); + } + Opcode::SLTU => { + (rd, b, c) = self.alu_rr(instruction); + a = if b < c { 1 } else { 0 }; + self.alu_rw(instruction, rd, a, b, c, lookup_id); } // Load instructions. - Opcode::LB | Opcode::LH | Opcode::LW | Opcode::LBU | Opcode::LHU => { - (a, b, c) = self.execute_load(instruction)?; + Opcode::LB => { + (rd, b, c, addr, memory_read_value) = self.load_rr(instruction); + let value = (memory_read_value).to_le_bytes()[(addr % 4) as usize]; + a = ((value as i8) as i32) as u32; + memory_store_value = Some(memory_read_value); + self.rw(rd, a); + } + Opcode::LH => { + (rd, b, c, addr, memory_read_value) = self.load_rr(instruction); + if addr % 2 != 0 { + return Err(ExecutionError::InvalidMemoryAccess(Opcode::LH, addr)); + } + let value = match (addr >> 1) % 2 { + 0 => memory_read_value & 0x0000_FFFF, + 1 => (memory_read_value & 0xFFFF_0000) >> 16, + _ => unreachable!(), + }; + a = ((value as i16) as i32) as u32; + memory_store_value = Some(memory_read_value); + self.rw(rd, a); + } + Opcode::LW => { + (rd, b, c, addr, memory_read_value) = self.load_rr(instruction); + if addr % 4 != 0 { + return Err(ExecutionError::InvalidMemoryAccess(Opcode::LW, addr)); + } + a = memory_read_value; + memory_store_value = Some(memory_read_value); + self.rw(rd, a); + } + Opcode::LBU => { + (rd, b, c, addr, memory_read_value) = self.load_rr(instruction); + let value = (memory_read_value).to_le_bytes()[(addr % 4) as usize]; + a = value as u32; + memory_store_value = Some(memory_read_value); + self.rw(rd, a); + } + Opcode::LHU => { + (rd, b, c, addr, memory_read_value) = self.load_rr(instruction); + if addr % 2 != 0 { + return Err(ExecutionError::InvalidMemoryAccess(Opcode::LHU, addr)); + } + let value = match (addr >> 1) % 2 { + 0 => memory_read_value & 0x0000_FFFF, + 1 => (memory_read_value & 0xFFFF_0000) >> 16, + _ => unreachable!(), + }; + a = (value as u16) as u32; + memory_store_value = Some(memory_read_value); + self.rw(rd, a); } // Store instructions. - Opcode::SB | Opcode::SH | Opcode::SW => { - (a, b, c) = self.execute_store(instruction)?; + Opcode::SB => { + (a, b, c, addr, memory_read_value) = self.store_rr(instruction); + let value = match addr % 4 { + 0 => (a & 0x0000_00FF) + (memory_read_value & 0xFFFF_FF00), + 1 => ((a & 0x0000_00FF) << 8) + (memory_read_value & 0xFFFF_00FF), + 2 => ((a & 0x0000_00FF) << 16) + (memory_read_value & 0xFF00_FFFF), + 3 => ((a & 0x0000_00FF) << 24) + (memory_read_value & 0x00FF_FFFF), + _ => unreachable!(), + }; + memory_store_value = Some(value); + self.mw_cpu(align(addr), value, MemoryAccessPosition::Memory); + } + Opcode::SH => { + (a, b, c, addr, memory_read_value) = self.store_rr(instruction); + if addr % 2 != 0 { + return Err(ExecutionError::InvalidMemoryAccess(Opcode::SH, addr)); + } + let value = match (addr >> 1) % 2 { + 0 => (a & 0x0000_FFFF) + (memory_read_value & 0xFFFF_0000), + 1 => ((a & 0x0000_FFFF) << 16) + (memory_read_value & 0x0000_FFFF), + _ => unreachable!(), + }; + memory_store_value = Some(value); + self.mw_cpu(align(addr), value, MemoryAccessPosition::Memory); + } + Opcode::SW => { + (a, b, c, addr, _) = self.store_rr(instruction); + if addr % 4 != 0 { + return Err(ExecutionError::InvalidMemoryAccess(Opcode::SW, addr)); + } + let value = a; + memory_store_value = Some(value); + self.mw_cpu(align(addr), value, MemoryAccessPosition::Memory); } - // Branch instructions. - Opcode::BEQ | Opcode::BNE | Opcode::BLT | Opcode::BGE | Opcode::BLTU | Opcode::BGEU => { - (a, b, c, next_pc) = self.execute_branch(instruction, next_pc); + // B-type instructions. + Opcode::BEQ => { + (a, b, c) = self.branch_rr(instruction); + if a == b { + next_pc = self.state.pc.wrapping_add(c); + } + } + Opcode::BNE => { + (a, b, c) = self.branch_rr(instruction); + if a != b { + next_pc = self.state.pc.wrapping_add(c); + } + } + Opcode::BLT => { + (a, b, c) = self.branch_rr(instruction); + if (a as i32) < (b as i32) { + next_pc = self.state.pc.wrapping_add(c); + } + } + Opcode::BGE => { + (a, b, c) = self.branch_rr(instruction); + if (a as i32) >= (b as i32) { + next_pc = self.state.pc.wrapping_add(c); + } + } + Opcode::BLTU => { + (a, b, c) = self.branch_rr(instruction); + if a < b { + next_pc = self.state.pc.wrapping_add(c); + } + } + Opcode::BGEU => { + (a, b, c) = self.branch_rr(instruction); + if a >= b { + next_pc = self.state.pc.wrapping_add(c); + } } // Jump instructions. @@ -938,7 +1084,7 @@ impl<'a> Executor<'a> { _ => (self.opts.split_opts.deferred, 1), }; let nonce = (((*syscall_count as usize) % threshold) * multiplier) as u32; - self.record.nonce_lookup[syscall_lookup_id.0 as usize] = nonce; + self.record.nonce_lookup.insert(syscall_lookup_id, nonce); *syscall_count += 1; let syscall_impl = self.get_syscall(syscall).cloned(); @@ -988,181 +1134,95 @@ impl<'a> Executor<'a> { return Err(ExecutionError::Breakpoint()); } - // See https://github.com/riscv-non-isa/riscv-asm-manual/blob/master/riscv-asm.md#instruction-aliases - Opcode::UNIMP => { - return Err(ExecutionError::Unimplemented()); + // Multiply instructions. + Opcode::MUL => { + (rd, b, c) = self.alu_rr(instruction); + a = b.wrapping_mul(c); + self.alu_rw(instruction, rd, a, b, c, lookup_id); } - } - - // Update the program counter. - self.state.pc = next_pc; - - // Update the clk to the next cycle. - self.state.clk += 4; - - // Emit the CPU event for this cycle. - if self.executor_mode == ExecutorMode::Trace { - self.emit_cpu( - clk, - pc, - next_pc, - a, - b, - c, - self.memory_accesses, - exit_code, - lookup_id, - syscall_lookup_id, - ); - }; - Ok(()) - } - - fn execute_alu(&mut self, instruction: &Instruction, lookup_id: LookupId) -> (u32, u32, u32) { - let (rd, b, c) = self.alu_rr(instruction); - let a = match instruction.opcode { - Opcode::ADD => b.wrapping_add(c), - Opcode::SUB => b.wrapping_sub(c), - Opcode::XOR => b ^ c, - Opcode::OR => b | c, - Opcode::AND => b & c, - Opcode::SLL => b.wrapping_shl(c), - Opcode::SRL => b.wrapping_shr(c), - Opcode::SRA => (b as i32).wrapping_shr(c) as u32, - Opcode::SLT => { - if (b as i32) < (c as i32) { - 1 - } else { - 0 - } + Opcode::MULH => { + (rd, b, c) = self.alu_rr(instruction); + a = (((b as i32) as i64).wrapping_mul((c as i32) as i64) >> 32) as u32; + self.alu_rw(instruction, rd, a, b, c, lookup_id); } - Opcode::SLTU => { - if b < c { - 1 - } else { - 0 - } + Opcode::MULHU => { + (rd, b, c) = self.alu_rr(instruction); + a = ((b as u64).wrapping_mul(c as u64) >> 32) as u32; + self.alu_rw(instruction, rd, a, b, c, lookup_id); + } + Opcode::MULHSU => { + (rd, b, c) = self.alu_rr(instruction); + a = (((b as i32) as i64).wrapping_mul(c as i64) >> 32) as u32; + self.alu_rw(instruction, rd, a, b, c, lookup_id); } - Opcode::MUL => b.wrapping_mul(c), - Opcode::MULH => (((b as i32) as i64).wrapping_mul((c as i32) as i64) >> 32) as u32, - Opcode::MULHU => ((b as u64).wrapping_mul(c as u64) >> 32) as u32, - Opcode::MULHSU => (((b as i32) as i64).wrapping_mul(c as i64) >> 32) as u32, Opcode::DIV => { + (rd, b, c) = self.alu_rr(instruction); if c == 0 { - u32::MAX + a = u32::MAX; } else { - (b as i32).wrapping_div(c as i32) as u32 + a = (b as i32).wrapping_div(c as i32) as u32; } + self.alu_rw(instruction, rd, a, b, c, lookup_id); } Opcode::DIVU => { + (rd, b, c) = self.alu_rr(instruction); if c == 0 { - u32::MAX + a = u32::MAX; } else { - b.wrapping_div(c) + a = b.wrapping_div(c); } + self.alu_rw(instruction, rd, a, b, c, lookup_id); } Opcode::REM => { + (rd, b, c) = self.alu_rr(instruction); if c == 0 { - b + a = b; } else { - (b as i32).wrapping_rem(c as i32) as u32 + a = (b as i32).wrapping_rem(c as i32) as u32; } + self.alu_rw(instruction, rd, a, b, c, lookup_id); } Opcode::REMU => { + (rd, b, c) = self.alu_rr(instruction); if c == 0 { - b + a = b; } else { - b.wrapping_rem(c) + a = b.wrapping_rem(c); } + self.alu_rw(instruction, rd, a, b, c, lookup_id); } - _ => unreachable!(), - }; - self.alu_rw(instruction, rd, a, b, c, lookup_id); - (a, b, c) - } - fn execute_load( - &mut self, - instruction: &Instruction, - ) -> Result<(u32, u32, u32), ExecutionError> { - let (rd, b, c, addr, memory_read_value) = self.load_rr(instruction); - let a = match instruction.opcode { - Opcode::LB => ((memory_read_value >> ((addr % 4) * 8)) & 0xFF) as i8 as i32 as u32, - Opcode::LH => { - if addr % 2 != 0 { - return Err(ExecutionError::InvalidMemoryAccess(Opcode::LH, addr)); - } - ((memory_read_value >> (((addr / 2) % 2) * 16)) & 0xFFFF) as i16 as i32 as u32 - } - Opcode::LW => { - if addr % 4 != 0 { - return Err(ExecutionError::InvalidMemoryAccess(Opcode::LW, addr)); - } - memory_read_value - } - Opcode::LBU => (memory_read_value >> ((addr % 4) * 8)) & 0xFF, - Opcode::LHU => { - if addr % 2 != 0 { - return Err(ExecutionError::InvalidMemoryAccess(Opcode::LHU, addr)); - } - (memory_read_value >> (((addr / 2) % 2) * 16)) & 0xFFFF + // See https://github.com/riscv-non-isa/riscv-asm-manual/blob/master/riscv-asm.md#instruction-aliases + Opcode::UNIMP => { + return Err(ExecutionError::Unimplemented()); } - _ => unreachable!(), - }; - self.rw(rd, a); - Ok((a, b, c)) - } + } - fn execute_store( - &mut self, - instruction: &Instruction, - ) -> Result<(u32, u32, u32), ExecutionError> { - let (a, b, c, addr, memory_read_value) = self.store_rr(instruction); - let memory_store_value = match instruction.opcode { - Opcode::SB => { - let shift = (addr % 4) * 8; - ((a & 0xFF) << shift) | (memory_read_value & !(0xFF << shift)) - } - Opcode::SH => { - if addr % 2 != 0 { - return Err(ExecutionError::InvalidMemoryAccess(Opcode::SH, addr)); - } - let shift = ((addr / 2) % 2) * 16; - ((a & 0xFFFF) << shift) | (memory_read_value & !(0xFFFF << shift)) - } - Opcode::SW => { - if addr % 4 != 0 { - return Err(ExecutionError::InvalidMemoryAccess(Opcode::SW, addr)); - } - a - } - _ => unreachable!(), - }; - self.mw_cpu(align(addr), memory_store_value, MemoryAccessPosition::Memory); - Ok((a, b, c)) - } + // Update the program counter. + self.state.pc = next_pc; - fn execute_branch( - &mut self, - instruction: &Instruction, - mut next_pc: u32, - ) -> (u32, u32, u32, u32) { - let (a, b, c) = self.branch_rr(instruction); - let branch = match instruction.opcode { - Opcode::BEQ => a == b, - Opcode::BNE => a != b, - Opcode::BLT => (a as i32) < (b as i32), - Opcode::BGE => (a as i32) >= (b as i32), - Opcode::BLTU => a < b, - Opcode::BGEU => a >= b, - _ => { - unreachable!() - } + // Update the clk to the next cycle. + self.state.clk += 4; + + // Emit the CPU event for this cycle. + if self.executor_mode == ExecutorMode::Trace { + self.emit_cpu( + self.shard(), + clk, + pc, + next_pc, + *instruction, + a, + b, + c, + memory_store_value, + self.memory_accesses, + exit_code, + lookup_id, + syscall_lookup_id, + ); }; - if branch { - next_pc = self.state.pc.wrapping_add(c); - } - (a, b, c, next_pc) + Ok(()) } /// Executes one cycle of the program, returning whether the program has finished. @@ -1343,7 +1403,6 @@ impl<'a> Executor<'a> { std::mem::replace(&mut self.record, ExecutionRecord::new(self.program.clone())); let public_values = removed_record.public_values; self.record.public_values = public_values; - self.record.nonce_lookup = vec![0; self.opts.shard_size * 32]; self.records.push(removed_record); } @@ -1430,8 +1489,6 @@ impl<'a> Executor<'a> { } fn initialize(&mut self) { - self.record.nonce_lookup = vec![0; self.opts.shard_size * 32]; - self.state.clk = 0; tracing::debug!("loading memory image"); @@ -1467,11 +1524,6 @@ impl<'a> Executor<'a> { /// Executes up to `self.shard_batch_size` cycles of the program, returning whether the program /// has finished. pub fn execute(&mut self) -> Result { - // Initialize the nonce lookup table if it's uninitialized. - if self.record.nonce_lookup.len() <= 2 { - self.record.nonce_lookup = vec![0; self.opts.shard_size * 32]; - } - // Get the program. let program = self.program.clone(); diff --git a/crates/core/executor/src/instruction.rs b/crates/core/executor/src/instruction.rs index 10dfa5476..bc1df27ba 100644 --- a/crates/core/executor/src/instruction.rs +++ b/crates/core/executor/src/instruction.rs @@ -15,7 +15,7 @@ pub struct Instruction { /// The operation to execute. pub opcode: Opcode, /// The first operand. - pub op_a: u8, + pub op_a: u32, /// The second operand. pub op_b: u32, /// The third operand. @@ -31,7 +31,7 @@ impl Instruction { #[must_use] pub const fn new( opcode: Opcode, - op_a: u8, + op_a: u32, op_b: u32, op_c: u32, imm_b: bool, diff --git a/crates/core/executor/src/memory.rs b/crates/core/executor/src/memory.rs index a036bbf5c..6e375753d 100644 --- a/crates/core/executor/src/memory.rs +++ b/crates/core/executor/src/memory.rs @@ -11,10 +11,10 @@ impl Default for Page { } } -const LOG_PAGE_LEN: usize = 14; +const LOG_PAGE_LEN: usize = 15; const PAGE_LEN: usize = 1 << LOG_PAGE_LEN; const MAX_PAGE_COUNT: usize = ((1 << 31) - (1 << 27)) / 4 / PAGE_LEN + 1; -const NO_PAGE: u16 = u16::MAX; +const NO_PAGE: usize = usize::MAX; const PAGE_MASK: usize = PAGE_LEN - 1; #[derive(Debug, Clone, Serialize, Deserialize)] @@ -41,7 +41,7 @@ impl Default for NewPage { pub struct PagedMemory { /// The internal page table. pub page_table: Vec>, - pub index: Vec, + pub index: Vec, } impl PagedMemory { @@ -50,7 +50,8 @@ impl PagedMemory { /// The number of registers in the virtual machine. const NUM_REGISTERS: usize = 32; /// The offset subtracted from the main address space to make it contiguous. - const ADDR_COMPRESS_OFFSET: usize = Self::NUM_REGISTERS; + const ADDR_COMPRESS_OFFSET: usize = + Self::NUM_REGISTERS - (Self::NUM_REGISTERS >> Self::NUM_IGNORED_LOWER_BITS); /// Create a `PagedMemory` with capacity `MAX_PAGE_COUNT`. pub fn new_preallocated() -> Self { @@ -64,7 +65,7 @@ impl PagedMemory { if index == NO_PAGE { None } else { - self.page_table[index as usize].0[lower].as_ref() + self.page_table[index].0[lower].as_ref() } } @@ -75,7 +76,7 @@ impl PagedMemory { if index == NO_PAGE { None } else { - self.page_table[index as usize].0[lower].as_mut() + self.page_table[index].0[lower].as_mut() } } @@ -84,11 +85,11 @@ impl PagedMemory { let (upper, lower) = Self::indices(addr); let mut index = self.index[upper]; if index == NO_PAGE { - index = self.page_table.len() as u16; + index = self.page_table.len(); self.index[upper] = index; self.page_table.push(NewPage::new()); } - self.page_table[index as usize].0[lower].replace(value) + self.page_table[index].0[lower].replace(value) } /// Remove the value at the given address if it exists, returning it. @@ -98,7 +99,7 @@ impl PagedMemory { if index == NO_PAGE { None } else { - self.page_table[index as usize].0[lower].take() + self.page_table[index].0[lower].take() } } @@ -108,11 +109,11 @@ impl PagedMemory { let index = self.index[upper]; if index == NO_PAGE { let index = self.page_table.len(); - self.index[upper] = index as u16; + self.index[upper] = index; self.page_table.push(NewPage::new()); Entry::Vacant(VacantEntry { entry: &mut self.page_table[index].0[lower] }) } else { - let option = &mut self.page_table[index as usize].0[lower]; + let option = &mut self.page_table[index].0[lower]; match option { Some(_) => Entry::Occupied(OccupiedEntry { entry: option }), None => Entry::Vacant(VacantEntry { entry: option }), @@ -124,7 +125,7 @@ impl PagedMemory { pub fn keys(&self) -> impl Iterator + '_ { self.index.iter().enumerate().filter(|(_, &i)| i != NO_PAGE).flat_map(|(i, index)| { let upper = i << LOG_PAGE_LEN; - self.page_table[*index as usize] + self.page_table[*index] .0 .iter() .enumerate() @@ -274,7 +275,7 @@ impl IntoIterator for PagedMemory { move |(i, index)| { let upper = i << LOG_PAGE_LEN; let replacement = NewPage::new(); - std::mem::replace(&mut self.page_table[index as usize], replacement) + std::mem::replace(&mut self.page_table[index], replacement) .0 .into_iter() .enumerate() diff --git a/crates/core/executor/src/opcode.rs b/crates/core/executor/src/opcode.rs index 818b5b1f2..6d0589ca9 100644 --- a/crates/core/executor/src/opcode.rs +++ b/crates/core/executor/src/opcode.rs @@ -100,7 +100,7 @@ pub enum Opcode { /// rd ← rs1 % rs2 (unsigned), pc ← pc + 4 REMU = 37, /// Unimplemented instruction. - UNIMP = 38, + UNIMP = 39, } /// Byte Opcode. diff --git a/crates/core/executor/src/program.rs b/crates/core/executor/src/program.rs index 09bb70cac..29743a4c8 100644 --- a/crates/core/executor/src/program.rs +++ b/crates/core/executor/src/program.rs @@ -89,13 +89,6 @@ impl Program { }) .copied() } - - #[must_use] - /// Fetch the instruction at the given program counter. - pub fn fetch(&self, pc: u32) -> &Instruction { - let idx = ((pc - self.pc_base) / 4) as usize; - &self.instructions[idx] - } } impl MachineProgram for Program { diff --git a/crates/core/executor/src/record.rs b/crates/core/executor/src/record.rs index f9e89acb4..b6c23c45f 100644 --- a/crates/core/executor/src/record.rs +++ b/crates/core/executor/src/record.rs @@ -23,7 +23,7 @@ use crate::{ /// A record of the execution of a program. /// /// The trace of the execution is represented as a list of "events" that occur every cycle. -#[derive(Clone, Debug, Serialize, Deserialize)] +#[derive(Default, Clone, Debug, Serialize, Deserialize)] pub struct ExecutionRecord { /// The program. pub program: Arc, @@ -60,63 +60,16 @@ pub struct ExecutionRecord { /// The public values. pub public_values: PublicValues, /// The nonce lookup. - pub nonce_lookup: Vec, - /// The next nonce to use for a new lookup. - pub next_nonce: u64, + pub nonce_lookup: HashMap, /// The shape of the proof. pub shape: Option, } -impl Default for ExecutionRecord { - fn default() -> Self { - let mut res = Self { - program: Arc::default(), - cpu_events: Vec::default(), - add_events: Vec::default(), - mul_events: Vec::default(), - sub_events: Vec::default(), - bitwise_events: Vec::default(), - shift_left_events: Vec::default(), - shift_right_events: Vec::default(), - divrem_events: Vec::default(), - lt_events: Vec::default(), - byte_lookups: HashMap::default(), - precompile_events: PrecompileEvents::default(), - global_memory_initialize_events: Vec::default(), - global_memory_finalize_events: Vec::default(), - cpu_local_memory_access: Vec::default(), - syscall_events: Vec::default(), - public_values: PublicValues::default(), - nonce_lookup: Vec::default(), - next_nonce: 0, - shape: None, - }; - res.nonce_lookup.insert(0, 0); - res - } -} - impl ExecutionRecord { /// Create a new [`ExecutionRecord`]. #[must_use] pub fn new(program: Arc) -> Self { - let mut res = Self { program, ..Default::default() }; - res.nonce_lookup.insert(0, 0); - res - } - - /// Create a lookup id for an event. - pub fn create_lookup_id(&mut self) -> LookupId { - // let id = self.nonce_lookup.len() as u64; - let id = self.next_nonce; - self.next_nonce += 1; - // self.nonce_lookup.insert(id as usize, 0); - LookupId(id) - } - - /// Create 6 lookup ids for an ALU event. - pub fn create_lookup_ids(&mut self) -> [LookupId; 6] { - std::array::from_fn(|_| self.create_lookup_id()) + Self { program, ..Default::default() } } /// Add a mul event to the execution record. @@ -346,7 +299,7 @@ impl MachineRecord for ExecutionRecord { ); stats.insert("local_memory_access_events".to_string(), self.cpu_local_memory_access.len()); if !self.cpu_events.is_empty() { - let shard = self.public_values.shard; + let shard = self.cpu_events[0].shard; stats.insert( "byte_lookups".to_string(), self.byte_lookups.get(&shard).map_or(0, hashbrown::HashMap::len), @@ -384,35 +337,35 @@ impl MachineRecord for ExecutionRecord { fn register_nonces(&mut self, _opts: &Self::Config) { self.add_events.iter().enumerate().for_each(|(i, event)| { - self.nonce_lookup[event.lookup_id.0 as usize] = i as u32; + self.nonce_lookup.insert(event.lookup_id, i as u32); }); self.sub_events.iter().enumerate().for_each(|(i, event)| { - self.nonce_lookup[event.lookup_id.0 as usize] = (self.add_events.len() + i) as u32; + self.nonce_lookup.insert(event.lookup_id, (self.add_events.len() + i) as u32); }); self.mul_events.iter().enumerate().for_each(|(i, event)| { - self.nonce_lookup[event.lookup_id.0 as usize] = i as u32; + self.nonce_lookup.insert(event.lookup_id, i as u32); }); self.bitwise_events.iter().enumerate().for_each(|(i, event)| { - self.nonce_lookup[event.lookup_id.0 as usize] = i as u32; + self.nonce_lookup.insert(event.lookup_id, i as u32); }); self.shift_left_events.iter().enumerate().for_each(|(i, event)| { - self.nonce_lookup[event.lookup_id.0 as usize] = i as u32; + self.nonce_lookup.insert(event.lookup_id, i as u32); }); self.shift_right_events.iter().enumerate().for_each(|(i, event)| { - self.nonce_lookup[event.lookup_id.0 as usize] = i as u32; + self.nonce_lookup.insert(event.lookup_id, i as u32); }); self.divrem_events.iter().enumerate().for_each(|(i, event)| { - self.nonce_lookup[event.lookup_id.0 as usize] = i as u32; + self.nonce_lookup.insert(event.lookup_id, i as u32); }); self.lt_events.iter().enumerate().for_each(|(i, event)| { - self.nonce_lookup[event.lookup_id.0 as usize] = i as u32; + self.nonce_lookup.insert(event.lookup_id, i as u32); }); } diff --git a/crates/core/executor/src/register.rs b/crates/core/executor/src/register.rs index c24b75dec..176ef1c95 100644 --- a/crates/core/executor/src/register.rs +++ b/crates/core/executor/src/register.rs @@ -70,14 +70,14 @@ pub enum Register { } impl Register { - /// Create a new register from a u8. + /// Create a new register from a u32. /// /// # Panics /// /// This function will panic if the register is invalid. #[inline] #[must_use] - pub fn from_u8(value: u8) -> Self { + pub fn from_u32(value: u32) -> Self { match value { 0 => Register::X0, 1 => Register::X1, diff --git a/crates/core/executor/src/syscalls/precompiles/sha256/extend.rs b/crates/core/executor/src/syscalls/precompiles/sha256/extend.rs index cc5e288fb..6be45cd42 100644 --- a/crates/core/executor/src/syscalls/precompiles/sha256/extend.rs +++ b/crates/core/executor/src/syscalls/precompiles/sha256/extend.rs @@ -22,11 +22,11 @@ impl Syscall for Sha256ExtendSyscall { assert!(arg2 == 0, "arg2 must be 0"); let w_ptr_init = w_ptr; - let mut w_i_minus_15_reads = Vec::with_capacity(48); - let mut w_i_minus_2_reads = Vec::with_capacity(48); - let mut w_i_minus_16_reads = Vec::with_capacity(48); - let mut w_i_minus_7_reads = Vec::with_capacity(48); - let mut w_i_writes = Vec::with_capacity(48); + let mut w_i_minus_15_reads = Vec::new(); + let mut w_i_minus_2_reads = Vec::new(); + let mut w_i_minus_16_reads = Vec::new(); + let mut w_i_minus_7_reads = Vec::new(); + let mut w_i_writes = Vec::new(); for i in 16..64 { // Read w[i-15]. let (record, w_i_minus_15) = rt.mr(w_ptr + (i - 15) * 4); diff --git a/crates/core/machine/Cargo.toml b/crates/core/machine/Cargo.toml index 10694f12c..60ae3da00 100644 --- a/crates/core/machine/Cargo.toml +++ b/crates/core/machine/Cargo.toml @@ -53,7 +53,6 @@ static_assertions = "1.1.0" sp1-stark = { workspace = true } sp1-core-executor = { workspace = true } sp1-curves = { workspace = true } -vec_map = "0.8.2" [dev-dependencies] tiny-keccak = { version = "2.0.2", features = ["keccak"] } diff --git a/crates/core/machine/src/alu/add_sub/mod.rs b/crates/core/machine/src/alu/add_sub/mod.rs index d27682075..bf6dabef4 100644 --- a/crates/core/machine/src/alu/add_sub/mod.rs +++ b/crates/core/machine/src/alu/add_sub/mod.rs @@ -8,7 +8,7 @@ use itertools::Itertools; use p3_air::{Air, AirBuilder, BaseAir}; use p3_field::{AbstractField, PrimeField}; use p3_matrix::{dense::RowMajorMatrix, Matrix}; -use p3_maybe_rayon::prelude::{ParallelBridge, ParallelIterator}; +use p3_maybe_rayon::prelude::{ParallelBridge, ParallelIterator, ParallelSlice}; use sp1_core_executor::{ events::{AluEvent, ByteLookupEvent, ByteRecord}, ExecutionRecord, Opcode, Program, @@ -19,10 +19,7 @@ use sp1_stark::{ Word, }; -use crate::{ - operations::AddOperation, - utils::{next_power_of_two, zeroed_f_vec}, -}; +use crate::{operations::AddOperation, utils::pad_rows_fixed}; /// The number of main trace columns for `AddSubChip`. pub const NUM_ADD_SUB_COLS: usize = size_of::>(); @@ -82,29 +79,46 @@ impl MachineAir for AddSubChip { std::cmp::max((input.add_events.len() + input.sub_events.len()) / num_cpus::get(), 1); let merged_events = input.add_events.iter().chain(input.sub_events.iter()).collect::>(); - let nb_rows = merged_events.len(); - let size_log2 = input.fixed_log2_rows::(self); - let padded_nb_rows = next_power_of_two(nb_rows, size_log2); - let mut values = zeroed_f_vec(padded_nb_rows * NUM_ADD_SUB_COLS); - - values.chunks_mut(chunk_size * NUM_ADD_SUB_COLS).enumerate().par_bridge().for_each( - |(i, rows)| { - rows.chunks_mut(NUM_ADD_SUB_COLS).enumerate().for_each(|(j, row)| { - let idx = i * chunk_size + j; - let cols: &mut AddSubCols = row.borrow_mut(); - - if idx < merged_events.len() { - let mut byte_lookup_events = Vec::new(); - let event = &merged_events[idx]; - self.event_to_row(event, cols, &mut byte_lookup_events); - } - cols.nonce = F::from_canonical_usize(idx); - }); - }, - ); + let row_batches = merged_events + .par_chunks(chunk_size) + .map(|events| { + let rows = events + .iter() + .map(|event| { + let mut row = [F::zero(); NUM_ADD_SUB_COLS]; + let cols: &mut AddSubCols = row.as_mut_slice().borrow_mut(); + let mut blu = Vec::new(); + self.event_to_row(event, cols, &mut blu); + row + }) + .collect::>(); + rows + }) + .collect::>(); + + let mut rows: Vec<[F; NUM_ADD_SUB_COLS]> = vec![]; + for row_batch in row_batches { + rows.extend(row_batch); + } + + pad_rows_fixed( + &mut rows, + || [F::zero(); NUM_ADD_SUB_COLS], + input.fixed_log2_rows::(self), + ); // Convert the trace to a row major matrix. - RowMajorMatrix::new(values, NUM_ADD_SUB_COLS) + let mut trace = + RowMajorMatrix::new(rows.into_iter().flatten().collect::>(), NUM_ADD_SUB_COLS); + + // Write the nonces to the trace. + for i in 0..trace.height() { + let cols: &mut AddSubCols = + trace.values[i * NUM_ADD_SUB_COLS..(i + 1) * NUM_ADD_SUB_COLS].borrow_mut(); + cols.nonce = F::from_canonical_usize(i); + } + + trace } fn generate_dependencies(&self, input: &Self::Record, output: &mut Self::Record) { diff --git a/crates/core/machine/src/alu/divrem/mod.rs b/crates/core/machine/src/alu/divrem/mod.rs index 1d4d539fc..9170b87b5 100644 --- a/crates/core/machine/src/alu/divrem/mod.rs +++ b/crates/core/machine/src/alu/divrem/mod.rs @@ -279,19 +279,11 @@ impl MachineAir for DivRemChip { // Set the `alu_event` flags. cols.abs_c_alu_event = cols.c_neg * cols.is_real; cols.abs_c_alu_event_nonce = F::from_canonical_u32( - input - .nonce_lookup - .get(event.sub_lookups[4].0 as usize) - .copied() - .unwrap_or_default(), + input.nonce_lookup.get(&event.sub_lookups[4]).copied().unwrap_or_default(), ); cols.abs_rem_alu_event = cols.rem_neg * cols.is_real; cols.abs_rem_alu_event_nonce = F::from_canonical_u32( - input - .nonce_lookup - .get(event.sub_lookups[5].0 as usize) - .copied() - .unwrap_or_default(), + input.nonce_lookup.get(&event.sub_lookups[5]).copied().unwrap_or_default(), ); // Insert the MSB lookup events. @@ -352,24 +344,16 @@ impl MachineAir for DivRemChip { // Insert the necessary multiplication & LT events. { cols.lower_nonce = F::from_canonical_u32( - input - .nonce_lookup - .get(event.sub_lookups[0].0 as usize) - .copied() - .unwrap_or_default(), + input.nonce_lookup.get(&event.sub_lookups[0]).copied().unwrap_or_default(), ); cols.upper_nonce = F::from_canonical_u32( - input - .nonce_lookup - .get(event.sub_lookups[1].0 as usize) - .copied() - .unwrap_or_default(), + input.nonce_lookup.get(&event.sub_lookups[1]).copied().unwrap_or_default(), ); if is_signed_operation(event.opcode) { cols.abs_nonce = F::from_canonical_u32( input .nonce_lookup - .get(event.sub_lookups[2].0 as usize) + .get(&event.sub_lookups[2]) .copied() .unwrap_or_default(), ); @@ -377,7 +361,7 @@ impl MachineAir for DivRemChip { cols.abs_nonce = F::from_canonical_u32( input .nonce_lookup - .get(event.sub_lookups[3].0 as usize) + .get(&event.sub_lookups[3]) .copied() .unwrap_or_default(), ); diff --git a/crates/core/machine/src/alu/lt/mod.rs b/crates/core/machine/src/alu/lt/mod.rs index 876fdaaf8..211cf5d91 100644 --- a/crates/core/machine/src/alu/lt/mod.rs +++ b/crates/core/machine/src/alu/lt/mod.rs @@ -19,7 +19,7 @@ use sp1_stark::{ Word, }; -use crate::utils::{next_power_of_two, zeroed_f_vec}; +use crate::utils::pad_rows_fixed; /// The number of main trace columns for `LtChip`. pub const NUM_LT_COLS: usize = size_of::>(); @@ -107,31 +107,38 @@ impl MachineAir for LtChip { _: &mut ExecutionRecord, ) -> RowMajorMatrix { // Generate the trace rows for each event. - let nb_rows = input.lt_events.len(); - let size_log2 = input.fixed_log2_rows::(self); - let padded_nb_rows = next_power_of_two(nb_rows, size_log2); - let mut values = zeroed_f_vec(padded_nb_rows * NUM_LT_COLS); - let chunk_size = std::cmp::max((nb_rows + 1) / num_cpus::get(), 1); - - values.chunks_mut(chunk_size * NUM_LT_COLS).enumerate().par_bridge().for_each( - |(i, rows)| { - rows.chunks_mut(NUM_LT_COLS).enumerate().for_each(|(j, row)| { - let idx = i * chunk_size + j; - let cols: &mut LtCols = row.borrow_mut(); - - if idx < nb_rows { - let mut byte_lookup_events = Vec::new(); - let event = &input.lt_events[idx]; - self.event_to_row(event, cols, &mut byte_lookup_events); - } - cols.nonce = F::from_canonical_usize(idx); - }); - }, + let mut rows = input + .lt_events + .par_iter() + .map(|event| { + let mut row = [F::zero(); NUM_LT_COLS]; + let mut new_byte_lookup_events: Vec = Vec::new(); + let cols: &mut LtCols = row.as_mut_slice().borrow_mut(); + self.event_to_row(event, cols, &mut new_byte_lookup_events); + + row + }) + .collect::>(); + + // Pad the trace to a power of two depending on the proof shape in `input`. + pad_rows_fixed( + &mut rows, + || [F::zero(); NUM_LT_COLS], + input.fixed_log2_rows::(self), ); // Convert the trace to a row major matrix. + let mut trace = + RowMajorMatrix::new(rows.into_iter().flatten().collect::>(), NUM_LT_COLS); + + // Write the nonces to the trace. + for i in 0..trace.height() { + let cols: &mut LtCols = + trace.values[i * NUM_LT_COLS..(i + 1) * NUM_LT_COLS].borrow_mut(); + cols.nonce = F::from_canonical_usize(i); + } - RowMajorMatrix::new(values, NUM_LT_COLS) + trace } fn generate_dependencies(&self, input: &Self::Record, output: &mut Self::Record) { diff --git a/crates/core/machine/src/alu/mul/mod.rs b/crates/core/machine/src/alu/mul/mod.rs index 6a1ce272f..0453cb5f8 100644 --- a/crates/core/machine/src/alu/mul/mod.rs +++ b/crates/core/machine/src/alu/mul/mod.rs @@ -35,24 +35,19 @@ use core::{ mem::size_of, }; -use hashbrown::HashMap; use p3_air::{Air, AirBuilder, BaseAir}; use p3_field::{AbstractField, PrimeField}; use p3_matrix::{dense::RowMajorMatrix, Matrix}; -use p3_maybe_rayon::prelude::{ParallelBridge, ParallelIterator, ParallelSlice}; +use p3_maybe_rayon::prelude::{ParallelIterator, ParallelSlice}; use sp1_core_executor::{ - events::{AluEvent, ByteLookupEvent, ByteRecord}, + events::{ByteLookupEvent, ByteRecord}, ByteOpcode, ExecutionRecord, Opcode, Program, }; use sp1_derive::AlignedBorrow; use sp1_primitives::consts::WORD_SIZE; -use sp1_stark::{air::MachineAir, Word}; +use sp1_stark::{air::MachineAir, MachineRecord, Word}; -use crate::{ - air::SP1CoreAirBuilder, - alu::mul::utils::get_msb, - utils::{next_power_of_two, zeroed_f_vec}, -}; +use crate::{air::SP1CoreAirBuilder, alu::mul::utils::get_msb, utils::pad_rows_fixed}; /// The number of main trace columns for `MulChip`. pub const NUM_MUL_COLS: usize = size_of::>(); @@ -136,54 +131,148 @@ impl MachineAir for MulChip { fn generate_trace( &self, input: &ExecutionRecord, - _: &mut ExecutionRecord, + output: &mut ExecutionRecord, ) -> RowMajorMatrix { - // Generate the trace rows for each event. - let nb_rows = input.mul_events.len(); - let size_log2 = input.fixed_log2_rows::(self); - let padded_nb_rows = next_power_of_two(nb_rows, size_log2); - let mut values = zeroed_f_vec(padded_nb_rows * NUM_MUL_COLS); - let chunk_size = std::cmp::max((nb_rows + 1) / num_cpus::get(), 1); - - values.chunks_mut(chunk_size * NUM_MUL_COLS).enumerate().par_bridge().for_each( - |(i, rows)| { - rows.chunks_mut(NUM_MUL_COLS).enumerate().for_each(|(j, row)| { - let idx = i * chunk_size + j; - let cols: &mut MulCols = row.borrow_mut(); - - if idx < nb_rows { - let mut byte_lookup_events = Vec::new(); - let event = &input.mul_events[idx]; - self.event_to_row(event, cols, &mut byte_lookup_events); - } - cols.nonce = F::from_canonical_usize(idx); - }); - }, - ); + let mul_events = input.mul_events.clone(); + // Compute the chunk size based on the number of events and the number of CPUs. + let chunk_size = std::cmp::max(mul_events.len() / num_cpus::get(), 1); - // Convert the trace to a row major matrix. - - RowMajorMatrix::new(values, NUM_MUL_COLS) - } - - fn generate_dependencies(&self, input: &Self::Record, output: &mut Self::Record) { - let chunk_size = std::cmp::max(input.mul_events.len() / num_cpus::get(), 1); - - let blu_batches = input - .mul_events + // Generate the trace rows & corresponding records for each chunk of events in parallel. + let rows_and_records = mul_events .par_chunks(chunk_size) .map(|events| { - let mut blu: HashMap> = HashMap::new(); - events.iter().for_each(|event| { - let mut row = [F::zero(); NUM_MUL_COLS]; - let cols: &mut MulCols = row.as_mut_slice().borrow_mut(); - self.event_to_row(event, cols, &mut blu); - }); - blu + let mut record = ExecutionRecord::default(); + let rows = events + .iter() + .map(|event| { + // Ensure that the opcode is MUL, MULHU, MULH, or MULHSU. + assert!( + event.opcode == Opcode::MUL + || event.opcode == Opcode::MULHU + || event.opcode == Opcode::MULH + || event.opcode == Opcode::MULHSU + ); + let mut row = [F::zero(); NUM_MUL_COLS]; + let cols: &mut MulCols = row.as_mut_slice().borrow_mut(); + + let a_word = event.a.to_le_bytes(); + let b_word = event.b.to_le_bytes(); + let c_word = event.c.to_le_bytes(); + + let mut b = b_word.to_vec(); + let mut c = c_word.to_vec(); + + // Handle b and c's signs. + { + let b_msb = get_msb(b_word); + cols.b_msb = F::from_canonical_u8(b_msb); + let c_msb = get_msb(c_word); + cols.c_msb = F::from_canonical_u8(c_msb); + + // If b is signed and it is negative, sign extend b. + if (event.opcode == Opcode::MULH || event.opcode == Opcode::MULHSU) + && b_msb == 1 + { + cols.b_sign_extend = F::one(); + b.resize(PRODUCT_SIZE, BYTE_MASK); + } + + // If c is signed and it is negative, sign extend c. + if event.opcode == Opcode::MULH && c_msb == 1 { + cols.c_sign_extend = F::one(); + c.resize(PRODUCT_SIZE, BYTE_MASK); + } + + // Insert the MSB lookup events. + { + let words = [b_word, c_word]; + let mut blu_events: Vec = vec![]; + for word in words.iter() { + let most_significant_byte = word[WORD_SIZE - 1]; + blu_events.push(ByteLookupEvent { + shard: event.shard, + opcode: ByteOpcode::MSB, + a1: get_msb(*word) as u16, + a2: 0, + b: most_significant_byte, + c: 0, + }); + } + record.add_byte_lookup_events(blu_events); + } + } + + let mut product = [0u32; PRODUCT_SIZE]; + for i in 0..b.len() { + for j in 0..c.len() { + if i + j < PRODUCT_SIZE { + product[i + j] += (b[i] as u32) * (c[j] as u32); + } + } + } + + // Calculate the correct product using the `product` array. We store the + // correct carry value for verification. + let base = (1 << BYTE_SIZE) as u32; + let mut carry = [0u32; PRODUCT_SIZE]; + for i in 0..PRODUCT_SIZE { + carry[i] = product[i] / base; + product[i] %= base; + if i + 1 < PRODUCT_SIZE { + product[i + 1] += carry[i]; + } + cols.carry[i] = F::from_canonical_u32(carry[i]); + } + + cols.product = product.map(F::from_canonical_u32); + cols.a = Word(a_word.map(F::from_canonical_u8)); + cols.b = Word(b_word.map(F::from_canonical_u8)); + cols.c = Word(c_word.map(F::from_canonical_u8)); + cols.is_real = F::one(); + cols.is_mul = F::from_bool(event.opcode == Opcode::MUL); + cols.is_mulh = F::from_bool(event.opcode == Opcode::MULH); + cols.is_mulhu = F::from_bool(event.opcode == Opcode::MULHU); + cols.is_mulhsu = F::from_bool(event.opcode == Opcode::MULHSU); + cols.shard = F::from_canonical_u32(event.shard); + + // Range check. + { + record.add_u16_range_checks(event.shard, &carry.map(|x| x as u16)); + record.add_u8_range_checks(event.shard, &product.map(|x| x as u8)); + } + row + }) + .collect::>(); + (rows, record) }) .collect::>(); - output.add_sharded_byte_lookup_events(blu_batches.iter().collect::>()); + // Generate the trace rows for each event. + let mut rows: Vec<[F; NUM_MUL_COLS]> = vec![]; + for mut row_and_record in rows_and_records { + rows.extend(row_and_record.0); + output.append(&mut row_and_record.1); + } + + // Pad the trace to a power of two depending on the proof shape in `input`. + pad_rows_fixed( + &mut rows, + || [F::zero(); NUM_MUL_COLS], + input.fixed_log2_rows::(self), + ); + + // Convert the trace to a row major matrix. + let mut trace = + RowMajorMatrix::new(rows.into_iter().flatten().collect::>(), NUM_MUL_COLS); + + // Write the nonces to the trace. + for i in 0..trace.height() { + let cols: &mut MulCols = + trace.values[i * NUM_MUL_COLS..(i + 1) * NUM_MUL_COLS].borrow_mut(); + cols.nonce = F::from_canonical_usize(i); + } + + trace } fn included(&self, shard: &Self::Record) -> bool { @@ -195,100 +284,6 @@ impl MachineAir for MulChip { } } -impl MulChip { - /// Create a row from an event. - fn event_to_row( - &self, - event: &AluEvent, - cols: &mut MulCols, - blu: &mut impl ByteRecord, - ) { - let a_word = event.a.to_le_bytes(); - let b_word = event.b.to_le_bytes(); - let c_word = event.c.to_le_bytes(); - - let mut b = b_word.to_vec(); - let mut c = c_word.to_vec(); - - // Handle b and c's signs. - { - let b_msb = get_msb(b_word); - cols.b_msb = F::from_canonical_u8(b_msb); - let c_msb = get_msb(c_word); - cols.c_msb = F::from_canonical_u8(c_msb); - - // If b is signed and it is negative, sign extend b. - if (event.opcode == Opcode::MULH || event.opcode == Opcode::MULHSU) && b_msb == 1 { - cols.b_sign_extend = F::one(); - b.resize(PRODUCT_SIZE, BYTE_MASK); - } - - // If c is signed and it is negative, sign extend c. - if event.opcode == Opcode::MULH && c_msb == 1 { - cols.c_sign_extend = F::one(); - c.resize(PRODUCT_SIZE, BYTE_MASK); - } - - // Insert the MSB lookup events. - { - let words = [b_word, c_word]; - let mut blu_events: Vec = vec![]; - for word in words.iter() { - let most_significant_byte = word[WORD_SIZE - 1]; - blu_events.push(ByteLookupEvent { - shard: event.shard, - opcode: ByteOpcode::MSB, - a1: get_msb(*word) as u16, - a2: 0, - b: most_significant_byte, - c: 0, - }); - } - blu.add_byte_lookup_events(blu_events); - } - } - - let mut product = [0u32; PRODUCT_SIZE]; - for i in 0..b.len() { - for j in 0..c.len() { - if i + j < PRODUCT_SIZE { - product[i + j] += (b[i] as u32) * (c[j] as u32); - } - } - } - - // Calculate the correct product using the `product` array. We store the - // correct carry value for verification. - let base = (1 << BYTE_SIZE) as u32; - let mut carry = [0u32; PRODUCT_SIZE]; - for i in 0..PRODUCT_SIZE { - carry[i] = product[i] / base; - product[i] %= base; - if i + 1 < PRODUCT_SIZE { - product[i + 1] += carry[i]; - } - cols.carry[i] = F::from_canonical_u32(carry[i]); - } - - cols.product = product.map(F::from_canonical_u32); - cols.a = Word(a_word.map(F::from_canonical_u8)); - cols.b = Word(b_word.map(F::from_canonical_u8)); - cols.c = Word(c_word.map(F::from_canonical_u8)); - cols.is_real = F::one(); - cols.is_mul = F::from_bool(event.opcode == Opcode::MUL); - cols.is_mulh = F::from_bool(event.opcode == Opcode::MULH); - cols.is_mulhu = F::from_bool(event.opcode == Opcode::MULHU); - cols.is_mulhsu = F::from_bool(event.opcode == Opcode::MULHSU); - cols.shard = F::from_canonical_u32(event.shard); - - // Range check. - { - blu.add_u16_range_checks(event.shard, &carry.map(|x| x as u16)); - blu.add_u8_range_checks(event.shard, &product.map(|x| x as u8)); - } - } -} - impl BaseAir for MulChip { fn width(&self) -> usize { NUM_MUL_COLS diff --git a/crates/core/machine/src/alu/sr/mod.rs b/crates/core/machine/src/alu/sr/mod.rs index b26c94994..9c19b4491 100644 --- a/crates/core/machine/src/alu/sr/mod.rs +++ b/crates/core/machine/src/alu/sr/mod.rs @@ -52,7 +52,7 @@ use itertools::Itertools; use p3_air::{Air, AirBuilder, BaseAir}; use p3_field::{AbstractField, PrimeField}; use p3_matrix::{dense::RowMajorMatrix, Matrix}; -use p3_maybe_rayon::prelude::{ParallelBridge, ParallelIterator, ParallelSlice}; +use p3_maybe_rayon::prelude::{ParallelIterator, ParallelSlice}; use sp1_core_executor::{ events::{AluEvent, ByteLookupEvent, ByteRecord}, ByteOpcode, ExecutionRecord, Opcode, Program, @@ -65,7 +65,7 @@ use crate::{ air::SP1CoreAirBuilder, alu::sr::utils::{nb_bits_to_shift, nb_bytes_to_shift}, bytes::utils::shr_carry, - utils::{next_power_of_two, zeroed_f_vec}, + utils::pad_rows_fixed, }; /// The number of main trace columns for `ShiftRightChip`. @@ -149,33 +149,54 @@ impl MachineAir for ShiftRightChip { _: &mut ExecutionRecord, ) -> RowMajorMatrix { // Generate the trace rows for each event. - let nb_rows = input.shift_right_events.len(); - let size_log2 = input.fixed_log2_rows::(self); - let padded_nb_rows = next_power_of_two(nb_rows, size_log2); - let mut values = zeroed_f_vec(padded_nb_rows * NUM_SHIFT_RIGHT_COLS); - let chunk_size = std::cmp::max((nb_rows + 1) / num_cpus::get(), 1); - - values.chunks_mut(chunk_size * NUM_SHIFT_RIGHT_COLS).enumerate().par_bridge().for_each( - |(i, rows)| { - rows.chunks_mut(NUM_SHIFT_RIGHT_COLS).enumerate().for_each(|(j, row)| { - let idx = i * chunk_size + j; - let cols: &mut ShiftRightCols = row.borrow_mut(); - - if idx < nb_rows { - let mut byte_lookup_events = Vec::new(); - let event = &input.shift_right_events[idx]; - self.event_to_row(event, cols, &mut byte_lookup_events); - } else { - cols.shift_by_n_bits[0] = F::one(); - cols.shift_by_n_bytes[0] = F::one(); - } - cols.nonce = F::from_canonical_usize(idx); - }); - }, + let mut rows: Vec<[F; NUM_SHIFT_RIGHT_COLS]> = Vec::new(); + let sr_events = input.shift_right_events.clone(); + for event in sr_events.iter() { + assert!(event.opcode == Opcode::SRL || event.opcode == Opcode::SRA); + let mut row = [F::zero(); NUM_SHIFT_RIGHT_COLS]; + let cols: &mut ShiftRightCols = row.as_mut_slice().borrow_mut(); + let mut blu = Vec::new(); + self.event_to_row(event, cols, &mut blu); + rows.push(row); + } + + // Pad the trace to a power of two depending on the proof shape in `input`. + pad_rows_fixed( + &mut rows, + || [F::zero(); NUM_SHIFT_RIGHT_COLS], + input.fixed_log2_rows::(self), ); // Convert the trace to a row major matrix. - RowMajorMatrix::new(values, NUM_SHIFT_RIGHT_COLS) + let mut trace = RowMajorMatrix::new( + rows.into_iter().flatten().collect::>(), + NUM_SHIFT_RIGHT_COLS, + ); + + // Create the template for the padded rows. These are fake rows that don't fail on some + // sanity checks. + let padded_row_template = { + let mut row = [F::zero(); NUM_SHIFT_RIGHT_COLS]; + let cols: &mut ShiftRightCols = row.as_mut_slice().borrow_mut(); + // Shift 0 by 0 bits and 0 bytes. + // cols.is_srl = F::one(); + cols.shift_by_n_bits[0] = F::one(); + cols.shift_by_n_bytes[0] = F::one(); + row + }; + debug_assert!(padded_row_template.len() == NUM_SHIFT_RIGHT_COLS); + for i in input.shift_right_events.len() * NUM_SHIFT_RIGHT_COLS..trace.values.len() { + trace.values[i] = padded_row_template[i % NUM_SHIFT_RIGHT_COLS]; + } + + // Write the nonces to the trace. + for i in 0..trace.height() { + let cols: &mut ShiftRightCols = + trace.values[i * NUM_SHIFT_RIGHT_COLS..(i + 1) * NUM_SHIFT_RIGHT_COLS].borrow_mut(); + cols.nonce = F::from_canonical_usize(i); + } + + trace } fn generate_dependencies(&self, input: &Self::Record, output: &mut Self::Record) { diff --git a/crates/core/machine/src/cpu/columns/instruction.rs b/crates/core/machine/src/cpu/columns/instruction.rs index 27dd1f6a9..a16de4fb0 100644 --- a/crates/core/machine/src/cpu/columns/instruction.rs +++ b/crates/core/machine/src/cpu/columns/instruction.rs @@ -27,13 +27,13 @@ pub struct InstructionCols { } impl InstructionCols { - pub fn populate(&mut self, instruction: &Instruction) { + pub fn populate(&mut self, instruction: Instruction) { self.opcode = instruction.opcode.as_field::(); - self.op_a = (instruction.op_a as u32).into(); + self.op_a = instruction.op_a.into(); self.op_b = instruction.op_b.into(); self.op_c = instruction.op_c.into(); - self.op_a_0 = F::from_bool(instruction.op_a == Register::X0 as u8); + self.op_a_0 = F::from_bool(instruction.op_a == Register::X0 as u32); } } diff --git a/crates/core/machine/src/cpu/columns/opcode.rs b/crates/core/machine/src/cpu/columns/opcode.rs index 4de8f11ba..9b4344d03 100644 --- a/crates/core/machine/src/cpu/columns/opcode.rs +++ b/crates/core/machine/src/cpu/columns/opcode.rs @@ -63,7 +63,7 @@ pub struct OpcodeSelectorCols { } impl OpcodeSelectorCols { - pub fn populate(&mut self, instruction: &Instruction) { + pub fn populate(&mut self, instruction: Instruction) { self.imm_b = F::from_bool(instruction.imm_b); self.imm_c = F::from_bool(instruction.imm_c); diff --git a/crates/core/machine/src/cpu/trace.rs b/crates/core/machine/src/cpu/trace.rs index 5a4320260..6358724bc 100644 --- a/crates/core/machine/src/cpu/trace.rs +++ b/crates/core/machine/src/cpu/trace.rs @@ -1,10 +1,10 @@ use hashbrown::HashMap; use itertools::Itertools; use sp1_core_executor::{ - events::{ByteLookupEvent, ByteRecord, CpuEvent, MemoryRecordEnum}, + events::{ByteLookupEvent, ByteRecord, CpuEvent, LookupId, MemoryRecordEnum}, syscalls::SyscallCode, ByteOpcode::{self, U16Range}, - ExecutionRecord, Instruction, Opcode, Program, + CoreShape, ExecutionRecord, Opcode, Program, Register::X0, }; use sp1_primitives::consts::WORD_SIZE; @@ -13,10 +13,15 @@ use std::{array, borrow::BorrowMut}; use p3_field::{PrimeField, PrimeField32}; use p3_matrix::dense::RowMajorMatrix; -use p3_maybe_rayon::prelude::{ParallelBridge, ParallelIterator, ParallelSlice}; +use p3_maybe_rayon::prelude::{ + IntoParallelRefMutIterator, ParallelBridge, ParallelIterator, ParallelSlice, +}; use tracing::instrument; -use super::{columns::NUM_CPU_COLS, CpuChip}; +use super::{ + columns::{CPU_COL_MAP, NUM_CPU_COLS}, + CpuChip, +}; use crate::{cpu::columns::CpuCols, memory::MemoryCols, utils::zeroed_f_vec}; impl MachineAir for CpuChip { @@ -50,29 +55,24 @@ impl MachineAir for CpuChip { rows.chunks_mut(NUM_CPU_COLS).enumerate().for_each(|(j, row)| { let idx = i * chunk_size + j; let cols: &mut CpuCols = row.borrow_mut(); - - if idx >= input.cpu_events.len() { - cols.selectors.imm_b = F::one(); - cols.selectors.imm_c = F::one(); - } else { - let mut byte_lookup_events = Vec::new(); - let event = &input.cpu_events[idx]; - let instruction = &input.program.fetch(event.pc); - self.event_to_row( - event, - &input.nonce_lookup, - cols, - &mut byte_lookup_events, - shard, - instruction, - ); - } + let mut byte_lookup_events = Vec::new(); + self.event_to_row( + &input.cpu_events[idx], + &input.nonce_lookup, + cols, + &mut byte_lookup_events, + ); }); }, ); // Convert the trace to a row major matrix. - RowMajorMatrix::new(values, NUM_CPU_COLS) + let mut trace = RowMajorMatrix::new(values, NUM_CPU_COLS); + + // Pad the trace to a power of two. + Self::pad_to_power_of_two::(self, &input.shape, &mut trace.values); + + trace } #[instrument(name = "generate cpu dependencies", level = "debug", skip_all)] @@ -90,15 +90,7 @@ impl MachineAir for CpuChip { ops.iter().for_each(|op| { let mut row = [F::zero(); NUM_CPU_COLS]; let cols: &mut CpuCols = row.as_mut_slice().borrow_mut(); - let instruction = &input.program.fetch(op.pc); - self.event_to_row::( - op, - &input.nonce_lookup, - cols, - &mut blu, - shard, - instruction, - ); + self.event_to_row::(op, &HashMap::new(), cols, &mut blu); }); blu }) @@ -121,25 +113,23 @@ impl CpuChip { fn event_to_row( &self, event: &CpuEvent, - nonce_lookup: &[u32], + nonce_lookup: &HashMap, cols: &mut CpuCols, blu_events: &mut impl ByteRecord, - shard: u32, - instruction: &Instruction, ) { // Populate shard and clk columns. - self.populate_shard_clk(cols, event, blu_events, shard); + self.populate_shard_clk(cols, event, blu_events); // Populate the nonce. cols.nonce = F::from_canonical_u32( - nonce_lookup.get(event.alu_lookup_id.0 as usize).copied().unwrap_or_default(), + nonce_lookup.get(&event.alu_lookup_id).copied().unwrap_or_default(), ); // Populate basic fields. cols.pc = F::from_canonical_u32(event.pc); cols.next_pc = F::from_canonical_u32(event.next_pc); - cols.instruction.populate(instruction); - cols.selectors.populate(instruction); + cols.instruction.populate(event.instruction); + cols.selectors.populate(event.instruction); *cols.op_a_access.value_mut() = event.a.into(); *cols.op_b_access.value_mut() = event.b.into(); *cols.op_c_access.value_mut() = event.c.into(); @@ -165,7 +155,7 @@ impl CpuChip { .map(|x| x.as_canonical_u32()) .collect::>(); blu_events.add_byte_lookup_event(ByteLookupEvent { - shard, + shard: event.shard, opcode: ByteOpcode::U8Range, a1: 0, a2: 0, @@ -173,7 +163,7 @@ impl CpuChip { c: a_bytes[1] as u8, }); blu_events.add_byte_lookup_event(ByteLookupEvent { - shard, + shard: event.shard, opcode: ByteOpcode::U8Range, a1: 0, a2: 0, @@ -182,20 +172,23 @@ impl CpuChip { }); // Populate memory accesses for reading from memory. + assert_eq!(event.memory_record.is_some(), event.memory.is_some()); let memory_columns = cols.opcode_specific_columns.memory_mut(); if let Some(record) = event.memory_record { memory_columns.memory_access.populate(record, blu_events) } // Populate memory, branch, jump, and auipc specific fields. - self.populate_memory(cols, event, blu_events, nonce_lookup, shard, instruction); - self.populate_branch(cols, event, nonce_lookup, instruction); - self.populate_jump(cols, event, nonce_lookup, instruction); - self.populate_auipc(cols, event, nonce_lookup, instruction); + self.populate_memory(cols, event, blu_events, nonce_lookup); + self.populate_branch(cols, event, nonce_lookup); + self.populate_jump(cols, event, nonce_lookup); + self.populate_auipc(cols, event, nonce_lookup); let is_halt = self.populate_ecall(cols, event, nonce_lookup); cols.is_sequential_instr = F::from_bool( - !instruction.is_branch_instruction() && !instruction.is_jump_instruction() && !is_halt, + !event.instruction.is_branch_instruction() + && !event.instruction.is_jump_instruction() + && !is_halt, ); // Assert that the instruction is not a no-op. @@ -208,9 +201,8 @@ impl CpuChip { cols: &mut CpuCols, event: &CpuEvent, blu_events: &mut impl ByteRecord, - shard: u32, ) { - cols.shard = F::from_canonical_u32(shard); + cols.shard = F::from_canonical_u32(event.shard); cols.clk = F::from_canonical_u32(event.clk); let clk_16bit_limb = (event.clk & 0xffff) as u16; @@ -219,15 +211,15 @@ impl CpuChip { cols.clk_8bit_limb = F::from_canonical_u8(clk_8bit_limb); blu_events.add_byte_lookup_event(ByteLookupEvent::new( - shard, + event.shard, U16Range, - shard as u16, + event.shard as u16, 0, 0, 0, )); blu_events.add_byte_lookup_event(ByteLookupEvent::new( - shard, + event.shard, U16Range, clk_16bit_limb, 0, @@ -235,7 +227,7 @@ impl CpuChip { 0, )); blu_events.add_byte_lookup_event(ByteLookupEvent::new( - shard, + event.shard, ByteOpcode::U8Range, 0, 0, @@ -250,12 +242,10 @@ impl CpuChip { cols: &mut CpuCols, event: &CpuEvent, blu_events: &mut impl ByteRecord, - nonce_lookup: &[u32], - shard: u32, - instruction: &Instruction, + nonce_lookup: &HashMap, ) { if !matches!( - instruction.opcode, + event.instruction.opcode, Opcode::LB | Opcode::LH | Opcode::LW @@ -282,7 +272,7 @@ impl CpuChip { let bits: [bool; 8] = array::from_fn(|i| aligned_addr_ls_byte & (1 << i) != 0); memory_columns.aa_least_sig_byte_decomp = array::from_fn(|i| F::from_bool(bits[i + 2])); memory_columns.addr_word_nonce = F::from_canonical_u32( - nonce_lookup.get(event.memory_add_lookup_id.0 as usize).copied().unwrap_or_default(), + nonce_lookup.get(&event.memory_add_lookup_id).copied().unwrap_or_default(), ); // Populate memory offsets. @@ -295,10 +285,10 @@ impl CpuChip { // If it is a load instruction, set the unsigned_mem_val column. let mem_value = event.memory_record.unwrap().value(); if matches!( - instruction.opcode, + event.instruction.opcode, Opcode::LB | Opcode::LBU | Opcode::LH | Opcode::LHU | Opcode::LW ) { - match instruction.opcode { + match event.instruction.opcode { Opcode::LB | Opcode::LBU => { cols.unsigned_mem_val = (mem_value.to_le_bytes()[addr_offset as usize] as u32).into(); @@ -318,8 +308,8 @@ impl CpuChip { } // For the signed load instructions, we need to check if the loaded value is negative. - if matches!(instruction.opcode, Opcode::LB | Opcode::LH) { - let most_sig_mem_value_byte = if matches!(instruction.opcode, Opcode::LB) { + if matches!(event.instruction.opcode, Opcode::LB | Opcode::LH) { + let most_sig_mem_value_byte = if matches!(event.instruction.opcode, Opcode::LB) { cols.unsigned_mem_val.to_u32().to_le_bytes()[0] } else { cols.unsigned_mem_val.to_u32().to_le_bytes()[1] @@ -330,22 +320,20 @@ impl CpuChip { F::from_canonical_u8(most_sig_mem_value_byte >> i & 0x01); } if memory_columns.most_sig_byte_decomp[7] == F::one() { - cols.mem_value_is_neg_not_x0 = F::from_bool(instruction.op_a != (X0 as u8)); + cols.mem_value_is_neg_not_x0 = + F::from_bool(event.instruction.op_a != (X0 as u32)); cols.unsigned_mem_val_nonce = F::from_canonical_u32( - nonce_lookup - .get(event.memory_sub_lookup_id.0 as usize) - .copied() - .unwrap_or_default(), + nonce_lookup.get(&event.memory_sub_lookup_id).copied().unwrap_or_default(), ); } } // Set the `mem_value_is_pos_not_x0` composite flag. cols.mem_value_is_pos_not_x0 = F::from_bool( - ((matches!(instruction.opcode, Opcode::LB | Opcode::LH) + ((matches!(event.instruction.opcode, Opcode::LB | Opcode::LH) && (memory_columns.most_sig_byte_decomp[7] == F::zero())) - || matches!(instruction.opcode, Opcode::LBU | Opcode::LHU | Opcode::LW)) - && instruction.op_a != (X0 as u8), + || matches!(event.instruction.opcode, Opcode::LBU | Opcode::LHU | Opcode::LW)) + && event.instruction.op_a != (X0 as u32), ); } @@ -353,7 +341,7 @@ impl CpuChip { let addr_bytes = memory_addr.to_le_bytes(); for byte_pair in addr_bytes.chunks_exact(2) { blu_events.add_byte_lookup_event(ByteLookupEvent { - shard, + shard: event.shard, opcode: ByteOpcode::U8Range, a1: 0, a2: 0, @@ -368,15 +356,15 @@ impl CpuChip { &self, cols: &mut CpuCols, event: &CpuEvent, - nonce_lookup: &[u32], - instruction: &Instruction, + nonce_lookup: &HashMap, ) { - if instruction.is_branch_instruction() { + if event.instruction.is_branch_instruction() { let branch_columns = cols.opcode_specific_columns.branch_mut(); let a_eq_b = event.a == event.b; - let use_signed_comparison = matches!(instruction.opcode, Opcode::BLT | Opcode::BGE); + let use_signed_comparison = + matches!(event.instruction.opcode, Opcode::BLT | Opcode::BGE); let a_lt_b = if use_signed_comparison { (event.a as i32) < (event.b as i32) @@ -390,18 +378,18 @@ impl CpuChip { }; branch_columns.a_lt_b_nonce = F::from_canonical_u32( - nonce_lookup.get(event.branch_lt_lookup_id.0 as usize).copied().unwrap_or_default(), + nonce_lookup.get(&event.branch_lt_lookup_id).copied().unwrap_or_default(), ); branch_columns.a_gt_b_nonce = F::from_canonical_u32( - nonce_lookup.get(event.branch_gt_lookup_id.0 as usize).copied().unwrap_or_default(), + nonce_lookup.get(&event.branch_gt_lookup_id).copied().unwrap_or_default(), ); branch_columns.a_eq_b = F::from_bool(a_eq_b); branch_columns.a_lt_b = F::from_bool(a_lt_b); branch_columns.a_gt_b = F::from_bool(a_gt_b); - let branching = match instruction.opcode { + let branching = match event.instruction.opcode { Opcode::BEQ => a_eq_b, Opcode::BNE => !a_eq_b, Opcode::BLT | Opcode::BLTU => a_lt_b, @@ -418,10 +406,7 @@ impl CpuChip { if branching { cols.branching = F::one(); branch_columns.next_pc_nonce = F::from_canonical_u32( - nonce_lookup - .get(event.branch_add_lookup_id.0 as usize) - .copied() - .unwrap_or_default(), + nonce_lookup.get(&event.branch_add_lookup_id).copied().unwrap_or_default(), ); } else { cols.not_branching = F::one(); @@ -434,13 +419,12 @@ impl CpuChip { &self, cols: &mut CpuCols, event: &CpuEvent, - nonce_lookup: &[u32], - instruction: &Instruction, + nonce_lookup: &HashMap, ) { - if instruction.is_jump_instruction() { + if event.instruction.is_jump_instruction() { let jump_columns = cols.opcode_specific_columns.jump_mut(); - match instruction.opcode { + match event.instruction.opcode { Opcode::JAL => { let next_pc = event.pc.wrapping_add(event.b); jump_columns.op_a_range_checker.populate(event.a); @@ -449,10 +433,7 @@ impl CpuChip { jump_columns.next_pc = Word::from(next_pc); jump_columns.next_pc_range_checker.populate(next_pc); jump_columns.jal_nonce = F::from_canonical_u32( - nonce_lookup - .get(event.jump_jal_lookup_id.0 as usize) - .copied() - .unwrap_or_default(), + nonce_lookup.get(&event.jump_jal_lookup_id).copied().unwrap_or_default(), ); } Opcode::JALR => { @@ -461,10 +442,7 @@ impl CpuChip { jump_columns.next_pc = Word::from(next_pc); jump_columns.next_pc_range_checker.populate(next_pc); jump_columns.jalr_nonce = F::from_canonical_u32( - nonce_lookup - .get(event.jump_jalr_lookup_id.0 as usize) - .copied() - .unwrap_or_default(), + nonce_lookup.get(&event.jump_jalr_lookup_id).copied().unwrap_or_default(), ); } _ => unreachable!(), @@ -477,16 +455,15 @@ impl CpuChip { &self, cols: &mut CpuCols, event: &CpuEvent, - nonce_lookup: &[u32], - instruction: &Instruction, + nonce_lookup: &HashMap, ) { - if matches!(instruction.opcode, Opcode::AUIPC) { + if matches!(event.instruction.opcode, Opcode::AUIPC) { let auipc_columns = cols.opcode_specific_columns.auipc_mut(); auipc_columns.pc = Word::from(event.pc); auipc_columns.pc_range_checker.populate(event.pc); auipc_columns.auipc_nonce = F::from_canonical_u32( - nonce_lookup.get(event.auipc_lookup_id.0 as usize).copied().unwrap_or_default(), + nonce_lookup.get(&event.auipc_lookup_id).copied().unwrap_or_default(), ); } } @@ -496,7 +473,7 @@ impl CpuChip { &self, cols: &mut CpuCols, event: &CpuEvent, - nonce_lookup: &[u32], + nonce_lookup: &HashMap, ) -> bool { let mut is_halt = false; @@ -549,8 +526,9 @@ impl CpuChip { } // Write the syscall nonce. - ecall_cols.syscall_nonce = - F::from_canonical_u32(nonce_lookup[event.syscall_lookup_id.0 as usize]); + ecall_cols.syscall_nonce = F::from_canonical_u32( + nonce_lookup.get(&event.syscall_lookup_id).copied().unwrap_or_default(), + ); is_halt = syscall_id == F::from_canonical_u32(SyscallCode::HALT.syscall_id()); @@ -572,4 +550,29 @@ impl CpuChip { is_halt } + + fn pad_to_power_of_two(&self, shape: &Option, values: &mut Vec) { + let n_real_rows = values.len() / NUM_CPU_COLS; + let padded_nb_rows = if let Some(shape) = shape { + 1 << shape.inner[&MachineAir::::name(self)] + } else if n_real_rows < 16 { + 16 + } else { + n_real_rows.next_power_of_two() + }; + values.resize(padded_nb_rows * NUM_CPU_COLS, F::zero()); + + // Interpret values as a slice of arrays of length `NUM_CPU_COLS` + let rows = unsafe { + core::slice::from_raw_parts_mut( + values.as_mut_ptr() as *mut [F; NUM_CPU_COLS], + values.len() / NUM_CPU_COLS, + ) + }; + + rows[n_real_rows..].par_iter_mut().for_each(|padded_row| { + padded_row[CPU_COL_MAP.selectors.imm_b] = F::one(); + padded_row[CPU_COL_MAP.selectors.imm_c] = F::one(); + }); + } } diff --git a/crates/core/machine/src/memory/local.rs b/crates/core/machine/src/memory/local.rs index 8be437703..bf109d028 100644 --- a/crates/core/machine/src/memory/local.rs +++ b/crates/core/machine/src/memory/local.rs @@ -3,11 +3,11 @@ use std::{ mem::size_of, }; -use crate::utils::{next_power_of_two, zeroed_f_vec}; +use crate::utils::pad_rows_fixed; +use itertools::Itertools; use p3_air::{Air, BaseAir}; use p3_field::PrimeField32; use p3_matrix::{dense::RowMajorMatrix, Matrix}; -use p3_maybe_rayon::prelude::{ParallelBridge, ParallelIterator}; use sp1_core_executor::{ExecutionRecord, Program}; use sp1_derive::AlignedBorrow; use sp1_stark::{ @@ -86,45 +86,39 @@ impl MachineAir for MemoryLocalChip { input: &ExecutionRecord, _output: &mut ExecutionRecord, ) -> RowMajorMatrix { - // Generate the trace rows for each event. - let events = input.get_local_mem_events().collect::>(); - let nb_rows = (events.len() + 3) / 4; - let size_log2 = input.fixed_log2_rows::(self); - let padded_nb_rows = next_power_of_two(nb_rows, size_log2); - let mut values = zeroed_f_vec(padded_nb_rows * NUM_MEMORY_LOCAL_INIT_COLS); - let chunk_size = std::cmp::max((nb_rows + 1) / num_cpus::get(), 1); - - values - .chunks_mut(chunk_size * NUM_MEMORY_LOCAL_INIT_COLS) - .enumerate() - .par_bridge() - .for_each(|(i, rows)| { - rows.chunks_mut(NUM_MEMORY_LOCAL_INIT_COLS).enumerate().for_each(|(j, row)| { - let idx = (i * chunk_size + j) * NUM_LOCAL_MEMORY_ENTRIES_PER_ROW; - - let cols: &mut MemoryLocalCols = row.borrow_mut(); - for k in 0..NUM_LOCAL_MEMORY_ENTRIES_PER_ROW { - let cols = &mut cols.memory_local_entries[k]; - if idx + k < events.len() { - let event = &events[idx + k]; - cols.addr = F::from_canonical_u32(event.addr); - cols.initial_shard = - F::from_canonical_u32(event.initial_mem_access.shard); - cols.final_shard = F::from_canonical_u32(event.final_mem_access.shard); - cols.initial_clk = - F::from_canonical_u32(event.initial_mem_access.timestamp); - cols.final_clk = - F::from_canonical_u32(event.final_mem_access.timestamp); - cols.initial_value = event.initial_mem_access.value.into(); - cols.final_value = event.final_mem_access.value.into(); - cols.is_real = F::one(); - } - } - }); - }); - - // Convert the trace to a row major matrix. - RowMajorMatrix::new(values, NUM_MEMORY_LOCAL_INIT_COLS) + let mut rows = Vec::<[F; NUM_MEMORY_LOCAL_INIT_COLS]>::new(); + + for local_mem_events in + &input.get_local_mem_events().chunks(NUM_LOCAL_MEMORY_ENTRIES_PER_ROW) + { + let mut row = [F::zero(); NUM_MEMORY_LOCAL_INIT_COLS]; + let cols: &mut MemoryLocalCols = row.as_mut_slice().borrow_mut(); + + for (cols, event) in cols.memory_local_entries.iter_mut().zip(local_mem_events) { + cols.addr = F::from_canonical_u32(event.addr); + cols.initial_shard = F::from_canonical_u32(event.initial_mem_access.shard); + cols.final_shard = F::from_canonical_u32(event.final_mem_access.shard); + cols.initial_clk = F::from_canonical_u32(event.initial_mem_access.timestamp); + cols.final_clk = F::from_canonical_u32(event.final_mem_access.timestamp); + cols.initial_value = event.initial_mem_access.value.into(); + cols.final_value = event.final_mem_access.value.into(); + cols.is_real = F::one(); + } + + rows.push(row); + } + + // Pad the trace to a power of two depending on the proof shape in `input`. + pad_rows_fixed( + &mut rows, + || [F::zero(); NUM_MEMORY_LOCAL_INIT_COLS], + input.fixed_log2_rows::(self), + ); + + RowMajorMatrix::new( + rows.into_iter().flatten().collect::>(), + NUM_MEMORY_LOCAL_INIT_COLS, + ) } fn included(&self, shard: &Self::Record) -> bool { diff --git a/crates/core/machine/src/memory/program.rs b/crates/core/machine/src/memory/program.rs index 699e052c0..7b6866162 100644 --- a/crates/core/machine/src/memory/program.rs +++ b/crates/core/machine/src/memory/program.rs @@ -7,7 +7,6 @@ use p3_air::{Air, AirBuilder, AirBuilderWithPublicValues, BaseAir, PairBuilder}; use p3_field::{AbstractField, PrimeField}; use p3_matrix::{dense::RowMajorMatrix, Matrix}; -use p3_maybe_rayon::prelude::{ParallelBridge, ParallelIterator}; use sp1_core_executor::{ExecutionRecord, Program}; use sp1_derive::AlignedBorrow; use sp1_stark::{ @@ -18,10 +17,7 @@ use sp1_stark::{ InteractionKind, Word, }; -use crate::{ - operations::IsZeroOperation, - utils::{next_power_of_two, pad_rows_fixed, zeroed_f_vec}, -}; +use crate::{operations::IsZeroOperation, utils::pad_rows_fixed}; pub const NUM_MEMORY_PROGRAM_PREPROCESSED_COLS: usize = size_of::>(); @@ -75,36 +71,35 @@ impl MachineAir for MemoryProgramChip { } fn generate_preprocessed_trace(&self, program: &Self::Program) -> Option> { - // Generate the trace rows for each event. - let nb_rows = program.memory_image.len(); - let size_log2 = program.fixed_log2_rows::(self); - let padded_nb_rows = next_power_of_two(nb_rows, size_log2); - let mut values = zeroed_f_vec(padded_nb_rows * NUM_MEMORY_PROGRAM_PREPROCESSED_COLS); - let chunk_size = std::cmp::max((nb_rows + 1) / num_cpus::get(), 1); - - let memory = program.memory_image.iter().collect::>(); - values - .chunks_mut(chunk_size * NUM_MEMORY_PROGRAM_PREPROCESSED_COLS) - .enumerate() - .par_bridge() - .for_each(|(i, rows)| { - rows.chunks_mut(NUM_MEMORY_PROGRAM_PREPROCESSED_COLS).enumerate().for_each( - |(j, row)| { - let idx = i * chunk_size + j; - - if idx < nb_rows { - let (addr, word) = memory[idx]; - let cols: &mut MemoryProgramPreprocessedCols = row.borrow_mut(); - cols.addr = F::from_canonical_u32(*addr); - cols.value = Word::from(*word); - cols.is_real = F::one(); - } - }, - ); - }); + let program_memory = &program.memory_image; + // Note that BTreeMap is guaranteed to be sorted by key. This makes the row order + // deterministic. + let mut rows = program_memory + .iter() + .sorted() + .map(|(&addr, &word)| { + let mut row = [F::zero(); NUM_MEMORY_PROGRAM_PREPROCESSED_COLS]; + let cols: &mut MemoryProgramPreprocessedCols = row.as_mut_slice().borrow_mut(); + cols.addr = F::from_canonical_u32(addr); + cols.value = Word::from(word); + cols.is_real = F::one(); + row + }) + .collect::>(); + + // Pad the trace to a power of two depending on the proof shape in `input`. + pad_rows_fixed( + &mut rows, + || [F::zero(); NUM_MEMORY_PROGRAM_PREPROCESSED_COLS], + program.fixed_log2_rows::(self), + ); // Convert the trace to a row major matrix. - Some(RowMajorMatrix::new(values, NUM_MEMORY_PROGRAM_PREPROCESSED_COLS)) + let trace = RowMajorMatrix::new( + rows.into_iter().flatten().collect::>(), + NUM_MEMORY_PROGRAM_PREPROCESSED_COLS, + ); + Some(trace) } fn generate_dependencies(&self, _input: &ExecutionRecord, _output: &mut ExecutionRecord) { diff --git a/crates/core/machine/src/program/mod.rs b/crates/core/machine/src/program/mod.rs index f6c1f3bc0..39dfb6a76 100644 --- a/crates/core/machine/src/program/mod.rs +++ b/crates/core/machine/src/program/mod.rs @@ -4,14 +4,10 @@ use core::{ }; use std::collections::HashMap; -use crate::{ - air::ProgramAirBuilder, - utils::{next_power_of_two, pad_rows_fixed, zeroed_f_vec}, -}; +use crate::{air::ProgramAirBuilder, utils::pad_rows_fixed}; use p3_air::{Air, BaseAir, PairBuilder}; use p3_field::PrimeField; use p3_matrix::{dense::RowMajorMatrix, Matrix}; -use p3_maybe_rayon::prelude::{ParallelBridge, ParallelIterator}; use sp1_core_executor::{ExecutionRecord, Program}; use sp1_derive::AlignedBorrow; use sp1_stark::air::{MachineAir, SP1AirBuilder}; @@ -69,34 +65,36 @@ impl MachineAir for ProgramChip { !program.instructions.is_empty() || program.preprocessed_shape.is_some(), "empty program" ); - // Generate the trace rows for each event. - let nb_rows = program.instructions.len(); - let size_log2 = program.fixed_log2_rows::(self); - let padded_nb_rows = next_power_of_two(nb_rows, size_log2); - let mut values = zeroed_f_vec(padded_nb_rows * NUM_PROGRAM_PREPROCESSED_COLS); - let chunk_size = std::cmp::max((nb_rows + 1) / num_cpus::get(), 1); - - values - .chunks_mut(chunk_size * NUM_PROGRAM_PREPROCESSED_COLS) + let mut rows = program + .instructions + .iter() .enumerate() - .par_bridge() - .for_each(|(i, rows)| { - rows.chunks_mut(NUM_PROGRAM_PREPROCESSED_COLS).enumerate().for_each(|(j, row)| { - let idx = i * chunk_size + j; - - if idx < nb_rows { - let cols: &mut ProgramPreprocessedCols = row.borrow_mut(); - let instruction = &program.instructions[idx]; - let pc = program.pc_base + (idx as u32 * 4); - cols.pc = F::from_canonical_u32(pc); - cols.instruction.populate(instruction); - cols.selectors.populate(instruction); - } - }); - }); + .map(|(i, &instruction)| { + let pc = program.pc_base + (i as u32 * 4); + let mut row = [F::zero(); NUM_PROGRAM_PREPROCESSED_COLS]; + let cols: &mut ProgramPreprocessedCols = row.as_mut_slice().borrow_mut(); + cols.pc = F::from_canonical_u32(pc); + cols.instruction.populate(instruction); + cols.selectors.populate(instruction); + + row + }) + .collect::>(); + + // Pad the trace to a power of two depending on the proof shape in `input`. + pad_rows_fixed( + &mut rows, + || [F::zero(); NUM_PROGRAM_PREPROCESSED_COLS], + program.fixed_log2_rows::(self), + ); // Convert the trace to a row major matrix. - Some(RowMajorMatrix::new(values, NUM_PROGRAM_PREPROCESSED_COLS)) + let trace = RowMajorMatrix::new( + rows.into_iter().flatten().collect::>(), + NUM_PROGRAM_PREPROCESSED_COLS, + ); + + Some(trace) } fn generate_dependencies(&self, _input: &ExecutionRecord, _output: &mut ExecutionRecord) { diff --git a/crates/core/machine/src/runtime/utils.rs b/crates/core/machine/src/runtime/utils.rs index 483400e29..7c0ad541e 100644 --- a/crates/core/machine/src/runtime/utils.rs +++ b/crates/core/machine/src/runtime/utils.rs @@ -19,7 +19,7 @@ macro_rules! assert_valid_memory_access { assert!($addr > 40); } _ => { - Register::from_u8($addr); + Register::from_u32($addr); } }; } @@ -69,7 +69,11 @@ impl<'a> Runtime<'a> { ); if !self.unconstrained && self.state.global_clk % 10_000_000 == 0 { - log::info!("clk = {} pc = 0x{:x?}", self.state.global_clk, self.state.pc); + log::info!( + "clk = {} pc = 0x{:x?}", + self.state.global_clk, + self.state.pc + ); } } } diff --git a/crates/core/machine/src/syscall/precompiles/edwards/ed_decompress.rs b/crates/core/machine/src/syscall/precompiles/edwards/ed_decompress.rs index 97d0e526f..c9c5ae93c 100644 --- a/crates/core/machine/src/syscall/precompiles/edwards/ed_decompress.rs +++ b/crates/core/machine/src/syscall/precompiles/edwards/ed_decompress.rs @@ -72,7 +72,7 @@ impl EdDecompressCols { self.clk = F::from_canonical_u32(event.clk); self.ptr = F::from_canonical_u32(event.ptr); self.nonce = F::from_canonical_u32( - record.nonce_lookup.get(event.lookup_id.0 as usize).copied().unwrap_or_default(), + record.nonce_lookup.get(&event.lookup_id).copied().unwrap_or_default(), ); self.sign = F::from_bool(event.sign); for i in 0..8 { diff --git a/crates/prover/src/lib.rs b/crates/prover/src/lib.rs index 984e186e5..0ff296bb2 100644 --- a/crates/prover/src/lib.rs +++ b/crates/prover/src/lib.rs @@ -33,7 +33,11 @@ use std::{ }; use lru::LruCache; + +use tracing::instrument; + use p3_baby_bear::BabyBear; + use p3_challenger::CanObserve; use p3_field::{AbstractField, PrimeField, PrimeField32}; use p3_matrix::dense::RowMajorMatrix; @@ -76,7 +80,6 @@ use sp1_stark::{ MachineProver, SP1CoreOpts, SP1ProverOpts, ShardProof, StarkGenericConfig, StarkVerifyingKey, Val, Word, DIGEST_SIZE, }; -use tracing::instrument; pub use types::*; use utils::{sp1_committed_values_digest_bn254, sp1_vkey_digest_bn254, words_to_bytes}; @@ -353,9 +356,8 @@ impl SP1Prover { input: &SP1CompressWithVKeyWitnessValues, ) -> Arc> { let mut cache = self.compress_programs.lock().unwrap_or_else(|e| e.into_inner()); - let shape = input.shape(); cache - .get_or_insert(shape.clone(), || { + .get_or_insert(input.shape(), || { let misses = self.compress_cache_misses.fetch_add(1, Ordering::Relaxed); tracing::debug!("compress cache miss, misses: {}", misses); // Get the operations. diff --git a/crates/prover/src/shapes.rs b/crates/prover/src/shapes.rs index 74f7ba177..b7adddc0e 100644 --- a/crates/prover/src/shapes.rs +++ b/crates/prover/src/shapes.rs @@ -1,13 +1,11 @@ use std::{ collections::{BTreeMap, BTreeSet, HashSet}, fs::File, - hash::{DefaultHasher, Hash, Hasher}, panic::{catch_unwind, AssertUnwindSafe}, path::PathBuf, sync::{Arc, Mutex}, }; -use eyre::Result; use thiserror::Error; use p3_baby_bear::BabyBear; @@ -31,7 +29,7 @@ pub enum SP1ProofShape { Shrink(ProofShape), } -#[derive(Debug, Clone, Hash)] +#[derive(Debug, Clone)] pub enum SP1CompressProgramShape { Recursion(SP1RecursionShape), Compress(SP1CompressWithVkeyShape), @@ -39,14 +37,6 @@ pub enum SP1CompressProgramShape { Shrink(SP1CompressWithVkeyShape), } -impl SP1CompressProgramShape { - pub fn hash_u64(&self) -> u64 { - let mut hasher = DefaultHasher::new(); - Hash::hash(&self, &mut hasher); - hasher.finish() - } -} - #[derive(Debug, Error)] pub enum VkBuildError { #[error("IO error: {0}")] @@ -241,15 +231,6 @@ impl SP1ProofShape { ) } - pub fn generate_compress_shapes( - recursion_shape_config: &'_ RecursionShapeConfig>, - reduce_batch_size: usize, - ) -> impl Iterator + '_ { - (1..=reduce_batch_size).flat_map(|batch_size| { - recursion_shape_config.get_all_shape_combinations(batch_size).map(Self::Compress) - }) - } - pub fn dummy_vk_map<'a>( core_shape_config: &'a CoreShapeConfig, recursion_shape_config: &'a RecursionShapeConfig>, diff --git a/crates/recursion/circuit/src/machine/deferred.rs b/crates/recursion/circuit/src/machine/deferred.rs index d5ab72097..0f38620a7 100644 --- a/crates/recursion/circuit/src/machine/deferred.rs +++ b/crates/recursion/circuit/src/machine/deferred.rs @@ -43,7 +43,7 @@ pub struct SP1DeferredVerifier { _phantom: std::marker::PhantomData<(C, SC, A)>, } -#[derive(Debug, Clone, Hash)] +#[derive(Debug, Clone)] pub struct SP1DeferredShape { inner: SP1CompressShape, height: usize, diff --git a/crates/recursion/compiler/src/circuit/compiler.rs b/crates/recursion/compiler/src/circuit/compiler.rs index 14aa320c9..9569aefd7 100644 --- a/crates/recursion/compiler/src/circuit/compiler.rs +++ b/crates/recursion/compiler/src/circuit/compiler.rs @@ -17,9 +17,6 @@ use sp1_recursion_core::*; use crate::prelude::*; -/// The number of instructions to preallocate in a recursion program -const PREALLOC_INSTRUCTIONS: usize = 10000000; - /// The backend for the circuit compiler. #[derive(Debug, Clone, Default)] pub struct AsmCompiler { @@ -535,7 +532,7 @@ where // Compile each IR instruction into a list of ASM instructions, then combine them. // This step also counts the number of times each address is read from. let (mut instrs, traces) = tracing::debug_span!("compile_one loop").in_scope(|| { - let mut instrs = Vec::with_capacity(PREALLOC_INSTRUCTIONS); + let mut instrs = Vec::with_capacity(operations.vec.len()); let mut traces = vec![]; if debug_mode { let mut span_builder = diff --git a/crates/recursion/core/src/chips/poseidon2_skinny/trace.rs b/crates/recursion/core/src/chips/poseidon2_skinny/trace.rs index 7e67f5436..ecd9c5755 100644 --- a/crates/recursion/core/src/chips/poseidon2_skinny/trace.rs +++ b/crates/recursion/core/src/chips/poseidon2_skinny/trace.rs @@ -41,10 +41,6 @@ impl MachineAir for Poseidon2SkinnyChip format!("Poseidon2SkinnyDeg{}", DEGREE) } - fn generate_dependencies(&self, _: &Self::Record, _: &mut Self::Record) { - // This is a no-op. - } - #[instrument(name = "generate poseidon2 skinny trace", level = "debug", skip_all, fields(rows = input.poseidon2_events.len()))] fn generate_trace( &self, diff --git a/crates/recursion/core/src/chips/poseidon2_wide/trace.rs b/crates/recursion/core/src/chips/poseidon2_wide/trace.rs index e13717bfa..e54030568 100644 --- a/crates/recursion/core/src/chips/poseidon2_wide/trace.rs +++ b/crates/recursion/core/src/chips/poseidon2_wide/trace.rs @@ -37,10 +37,6 @@ impl MachineAir for Poseidon2WideChip { pub val: Block, pub mult: F, diff --git a/crates/recursion/core/src/runtime/mod.rs b/crates/recursion/core/src/runtime/mod.rs index 90bdd1fb5..72667cd93 100644 --- a/crates/recursion/core/src/runtime/mod.rs +++ b/crates/recursion/core/src/runtime/mod.rs @@ -8,7 +8,6 @@ mod record; use backtrace::Backtrace as Trace; pub use instruction::Instruction; use instruction::{FieldEltType, HintBitsInstr, HintExt2FeltsInstr, HintInstr, PrintInstr}; -use machine::RecursionAirEventCount; use memory::*; pub use opcode::*; pub use program::*; @@ -255,7 +254,6 @@ where pub fn run(&mut self) -> Result<(), RuntimeError> { let early_exit_ts = std::env::var("RECURSION_EARLY_EXIT_TS") .map_or(usize::MAX, |ts: String| ts.parse().unwrap()); - self.preallocate_record(); while self.pc < F::from_canonical_u32(self.program.instructions.len() as u32) { let idx = self.pc.as_canonical_u32() as usize; let instruction = self.program.instructions[idx].clone(); @@ -592,18 +590,4 @@ where } Ok(()) } - - pub fn preallocate_record(&mut self) { - let event_counts = self - .program - .instructions - .iter() - .fold(RecursionAirEventCount::default(), |heights, instruction| heights + instruction); - self.record.poseidon2_events.reserve(event_counts.poseidon2_wide_events); - self.record.mem_var_events.reserve(event_counts.mem_var_events); - self.record.base_alu_events.reserve(event_counts.base_alu_events); - self.record.ext_alu_events.reserve(event_counts.ext_alu_events); - self.record.exp_reverse_bits_len_events.reserve(event_counts.exp_reverse_bits_len_events); - self.record.select_events.reserve(event_counts.select_events); - } } diff --git a/examples/Cargo.lock b/examples/Cargo.lock index 7f81a3d41..fd8f0b312 100644 --- a/examples/Cargo.lock +++ b/examples/Cargo.lock @@ -5613,7 +5613,6 @@ dependencies = [ "tracing-forest", "tracing-subscriber", "typenum", - "vec_map", "web-time", ] @@ -6104,7 +6103,7 @@ dependencies = [ [[package]] name = "substrate-bn" version = "0.6.0" -source = "git+https://github.com/sp1-patches/bn?tag=substrate_bn-v0.6.0-patch-v2#a1974dba1f3b75c16b48a84037edc12b36bba1cf" +source = "git+https://github.com/sp1-patches/bn?tag=substrate_bn-v0.6.0-patch-v2#201cc196da216656044e61fea7f68707b6896662" dependencies = [ "bytemuck", "byteorder", From 7da417fea8652f39b52f5c8e2b67bdbcfabcf5e2 Mon Sep 17 00:00:00 2001 From: Yuwen Zhang Date: Fri, 1 Nov 2024 17:49:25 -0700 Subject: [PATCH 08/14] run ci --- .github/workflows/pr.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 41b37ae3d..8dc3a621b 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -4,8 +4,6 @@ on: push: branches: [main, dev] pull_request: - branches: - - "**" paths: - "crates/**" - "examples/**" From c78b0bee8eccd738f4cdb3229941d4a6fed8ac84 Mon Sep 17 00:00:00 2001 From: Yuwen Zhang Date: Mon, 4 Nov 2024 11:37:39 -0800 Subject: [PATCH 09/14] axe wasm32 sdk check, spellcheck fix --- .github/workflows/pr.yml | 9 --------- 1 file changed, 9 deletions(-) diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 8dc3a621b..eea74b796 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -116,15 +116,6 @@ jobs: env: CARGO_INCREMENTAL: 1 - - name: Add wasm target - run: rustup target add wasm32-unknown-unknown - - - name: Check wasm compatibility for sdk - uses: actions-rs/cargo@v1 - with: - command: check - args: -p sp1-sdk --target wasm32-unknown-unknown --no-default-features - examples: name: Examples runs-on: From 53a07e0ba10c7710432aaf7af26b6b56d79c65d3 Mon Sep 17 00:00:00 2001 From: Yuwen Zhang Date: Mon, 4 Nov 2024 14:23:54 -0800 Subject: [PATCH 10/14] stop invoking ci so frivolously --- .github/workflows/pr.yml | 2 + examples/Cargo.lock | 401 +++++++++++++++++++++++++++++++-------- 2 files changed, 327 insertions(+), 76 deletions(-) diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index eea74b796..911d5ffa4 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -4,6 +4,8 @@ on: push: branches: [main, dev] pull_request: + branches: + - "**" paths: - "crates/**" - "examples/**" diff --git a/examples/Cargo.lock b/examples/Cargo.lock index fd8f0b312..53c25ab80 100644 --- a/examples/Cargo.lock +++ b/examples/Cargo.lock @@ -304,7 +304,7 @@ dependencies = [ "derive_more 1.0.0", "foldhash", "getrandom", - "hashbrown 0.15.0", + "hashbrown 0.15.1", "hex-literal", "indexmap 2.6.0", "itoa", @@ -339,7 +339,7 @@ checksum = "2b09cae092c27b6f1bde952653a22708691802e57bfef4a2973b80bea21efd3f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -456,7 +456,7 @@ dependencies = [ "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -472,7 +472,7 @@ dependencies = [ "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", "syn-solidity", "tiny-keccak", ] @@ -488,7 +488,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", "syn-solidity", ] @@ -557,9 +557,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.17" +version = "0.6.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23a1e53f0f5d86382dafe1cf314783b2044280f406e7e1506368220ad11b1338" +checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" dependencies = [ "anstyle", "anstyle-parse", @@ -760,7 +760,7 @@ checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -781,7 +781,7 @@ checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -911,7 +911,7 @@ dependencies = [ "regex", "rustc-hash 1.1.0", "shlex", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -1093,7 +1093,7 @@ checksum = "bcfcc3cd946cb52f0bbfdbbcfa2f4e24f75ebb6c0e1002f7c25904fada18b9ec" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -1160,9 +1160,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.1.31" +version = "1.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2e7962b54006dcfcc61cb72735f4d89bb97061dd6a7ed882ec6b8ee53714c6f" +checksum = "67b9470d453346108f93a59222a9a1a5724db32d0a4727b7ab7ace4b4d822dc9" dependencies = [ "jobserver", "libc", @@ -1273,7 +1273,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -1474,7 +1474,7 @@ source = "git+https://github.com/sp1-patches/curve25519-dalek?tag=curve25519_dal dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -1544,7 +1544,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -1555,7 +1555,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -1689,7 +1689,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version 0.4.1", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -1710,7 +1710,7 @@ dependencies = [ "convert_case 0.6.0", "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", "unicode-xid", ] @@ -1756,6 +1756,17 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "displaydoc" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] + [[package]] name = "downcast-rs" version = "1.2.1" @@ -1912,7 +1923,7 @@ checksum = "f282cfdfe92516eb26c2af8589c274c7c17681f5ecc03c18255fe741c6aa64eb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -1923,7 +1934,7 @@ checksum = "2f9ed6b3789237c8a0c1c505af1c7eb2c560df6186f01b098c3a1064ea532f38" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -1971,7 +1982,7 @@ dependencies = [ "proc-macro2", "quote", "syn 1.0.109", - "synstructure", + "synstructure 0.12.6", ] [[package]] @@ -2157,7 +2168,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -2346,9 +2357,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.15.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e087f84d4f86bf4b218b927129862374b72199ae7d8657835f1e89000eea4fb" +checksum = "3a9bfc1af68b1726ea47d3d5109de126281def866b33970e10fbab11b5dafab3" dependencies = [ "allocator-api2", "equivalent", @@ -2518,6 +2529,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.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" + +[[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.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" + +[[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.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" + +[[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.87", +] + [[package]] name = "ident_case" version = "1.0.1" @@ -2526,12 +2655,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]] @@ -2578,7 +2718,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" dependencies = [ "equivalent", - "hashbrown 0.15.0", + "hashbrown 0.15.1", "serde", ] @@ -2856,6 +2996,12 @@ version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" +[[package]] +name = "litemap" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704" + [[package]] name = "lock_api" version = "0.4.12" @@ -2878,7 +3024,7 @@ version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" dependencies = [ - "hashbrown 0.15.0", + "hashbrown 0.15.1", ] [[package]] @@ -3090,7 +3236,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -3197,7 +3343,7 @@ checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -3790,7 +3936,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "64d1ec885c64d0457d564db4ec299b2dae3f9c02808b8ad9c3a089c591b18033" dependencies = [ "proc-macro2", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -3851,7 +3997,7 @@ dependencies = [ "proc-macro-error-attr2", "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -3913,7 +4059,7 @@ dependencies = [ "itertools 0.12.1", "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -3926,7 +4072,7 @@ dependencies = [ "itertools 0.13.0", "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -4320,7 +4466,7 @@ dependencies = [ "convert_case 0.6.0", "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -5170,7 +5316,7 @@ dependencies = [ "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -5292,7 +5438,7 @@ checksum = "de523f781f095e28fa605cdce0f8307e451cc0fd14e2eb4cd2e98a355b147766" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -5326,7 +5472,7 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -5368,7 +5514,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -5393,7 +5539,7 @@ checksum = "82fe9db325bcef1fbcde82e078a5cc4efdf787e96b3b9cf45b50b529f2083d67" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -6051,6 +6197,12 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + [[package]] name = "static_assertions" version = "1.1.0" @@ -6082,7 +6234,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -6103,7 +6255,7 @@ dependencies = [ [[package]] name = "substrate-bn" version = "0.6.0" -source = "git+https://github.com/sp1-patches/bn?tag=substrate_bn-v0.6.0-patch-v2#201cc196da216656044e61fea7f68707b6896662" +source = "git+https://github.com/sp1-patches/bn?tag=substrate_bn-v0.6.0-patch-v2#8ef05d3969312eca34fa9f1f566a469022badda6" dependencies = [ "bytemuck", "byteorder", @@ -6150,9 +6302,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.86" +version = "2.0.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89275301d38033efb81a6e60e3497e734dfcc62571f2854bf4b16690398824c" +checksum = "25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d" dependencies = [ "proc-macro2", "quote", @@ -6168,7 +6320,7 @@ dependencies = [ "paste", "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -6198,6 +6350,17 @@ dependencies = [ "unicode-xid", ] +[[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.87", +] + [[package]] name = "sysinfo" version = "0.30.13" @@ -6314,22 +6477,22 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.66" +version = "1.0.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d171f59dbaa811dbbb1aee1e73db92ec2b122911a48e1390dfe327a821ddede" +checksum = "02dd99dc800bbb97186339685293e1cc5d9df1f8fae2d0aecd9ff1c77efea892" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.66" +version = "1.0.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b08be0f17bd307950653ce45db00cd31200d82b624b36e181337d9c7d92765b5" +checksum = "a7c61ec9a6f64d2793d8a45faba21efbe3ced62a886d44c36a009b2b519b4c7e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -6413,6 +6576,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.8.0" @@ -6454,7 +6627,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -6557,7 +6730,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", ] [[package]] @@ -6670,27 +6843,12 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" -[[package]] -name = "unicode-bidi" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ab17db44d7388991a428b2ee655ce0c212e862eff1768a455c58f9aad6e7893" - [[package]] name = "unicode-ident" version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" -[[package]] -name = "unicode-normalization" -version = "0.1.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" -dependencies = [ - "tinyvec", -] - [[package]] name = "unicode-segmentation" version = "1.12.0" @@ -6717,15 +6875,27 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.2" +version = "2.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" +checksum = "8d157f1b96d14500ffdc1f10ba712e780825526c03d9a49b4d0324b0d9113ada" dependencies = [ "form_urlencoded", "idna", "percent-encoding", ] +[[package]] +name = "utf16_iter" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + [[package]] name = "utf8parse" version = "0.2.2" @@ -6818,7 +6988,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", "wasm-bindgen-shared", ] @@ -6852,7 +7022,7 @@ checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -7142,6 +7312,18 @@ dependencies = [ "memchr", ] +[[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 = "wyz" version = "0.5.1" @@ -7151,6 +7333,30 @@ dependencies = [ "tap", ] +[[package]] +name = "yoke" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c5b1314b079b0930c31e3af543d8ee1757b1951ae1e1565ec704403a7240ca5" +dependencies = [ + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", + "synstructure 0.13.1", +] + [[package]] name = "zerocopy" version = "0.7.35" @@ -7169,7 +7375,28 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", +] + +[[package]] +name = "zerofrom" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91ec111ce797d0e0784a1116d0ddcdbea84322cd79e5d5ad173daeba4f93ab55" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", + "synstructure 0.13.1", ] [[package]] @@ -7189,7 +7416,29 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.86", + "syn 2.0.87", +] + +[[package]] +name = "zerovec" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", ] [[package]] From d8edd52ceb9b40c21582717577d0e9c5d0d5985f Mon Sep 17 00:00:00 2001 From: Yuwen Zhang Date: Mon, 4 Nov 2024 14:27:29 -0800 Subject: [PATCH 11/14] remove build profiler --- rust_build_profiler.py | 135 ----------------------------------------- 1 file changed, 135 deletions(-) delete mode 100644 rust_build_profiler.py diff --git a/rust_build_profiler.py b/rust_build_profiler.py deleted file mode 100644 index 91a001bb9..000000000 --- a/rust_build_profiler.py +++ /dev/null @@ -1,135 +0,0 @@ -#!/usr/bin/env python3 -import subprocess -import os -from datetime import datetime -import argparse -from pathlib import Path -from bs4 import BeautifulSoup -import re - -class RustBuildProfiler: - def __init__(self, project_path="."): - self.project_path = Path(project_path) - self.timings_dir = self.project_path / "target" / "cargo-timings" - - def run_build_with_timing(self): - """Run cargo build with timing flags enabled""" - print("Running cargo build with timing enabled...") - cmd = [ - "cargo", "build", - "--timings", - "--release", # Optional: change to debug if needed - "--package", "sp1-sdk" - ] - - try: - subprocess.run(cmd, cwd=self.project_path, check=True) - except subprocess.CalledProcessError as e: - print(f"Error running cargo build: {e}") - return False - return True - - def get_latest_timing_file(self): - """Get the most recent timing HTML file""" - if not self.timings_dir.exists(): - return None - - timing_files = list(self.timings_dir.glob("cargo-timing-*.html")) - if not timing_files: - return None - - return max(timing_files, key=lambda f: f.stat().st_mtime) - - def parse_duration(self, duration_str): - """Parse duration string to seconds""" - if 'ms' in duration_str: - return float(duration_str.replace('ms', '')) / 1000 - elif 's' in duration_str: - return float(duration_str.replace('s', '')) - return 0 - - def analyze_timings(self, timing_file): - """Analyze the timing data from HTML and return formatted results""" - with open(timing_file) as f: - soup = BeautifulSoup(f, 'html.parser') - - # Find all timing entries - unit_times = [] - - # Look for timing data in the HTML - # First try the newer cargo timing format - timing_divs = soup.find_all('div', class_='artifact') - if timing_divs: - for div in timing_divs: - name_elem = div.find('a', class_='name') - time_elem = div.find('span', class_='time') - - if name_elem and time_elem: - name = name_elem.text.strip() - duration_str = time_elem.text.strip() - duration = self.parse_duration(duration_str) - unit_times.append((duration, name)) - else: - # Fall back to older format - tables = soup.find_all('table') - for table in tables: - rows = table.find_all('tr') - for row in rows[1:]: # Skip header row - cols = row.find_all('td') - if len(cols) >= 2: - name = cols[0].text.strip() - duration_str = cols[1].text.strip() - duration = self.parse_duration(duration_str) - unit_times.append((duration, name)) - - # Sort by duration (descending) - unit_times.sort(reverse=True) - - # Calculate total build time - total_time = sum(duration for duration, _ in unit_times) - - return unit_times, total_time - - def format_duration(self, duration): - """Format duration in seconds to a human-readable string""" - if duration < 1: - return f"{duration*1000:.1f}ms" - return f"{duration:.2f}s" - - def run_profile(self): - """Run the complete profiling process""" - if not self.run_build_with_timing(): - return - - timing_file = self.get_latest_timing_file() - if not timing_file: - print("No timing files found. Make sure the build completed successfully.") - return - - unit_times, total_time = self.analyze_timings(timing_file) - - # Print results - print("\nBuild Time Analysis") - print("=" * 60) - print(f"Total Build Time: {self.format_duration(total_time)}") - print("\nTop 10 Longest Building Units:") - print("-" * 60) - print(f"{'Duration':>12} | {'% of Total':>10} | Unit Name") - print("-" * 60) - - for duration, name in unit_times[:10]: - percentage = (duration / total_time) * 100 - print(f"{self.format_duration(duration):>12} | {percentage:>9.1f}% | {name}") - - print(f"\nFull report available at: {timing_file}") - -def main(): - parser = argparse.ArgumentParser(description="Profile Rust project build times") - parser.add_argument("--path", default=".", help="Path to Rust project (default: current directory)") - args = parser.parse_args() - - profiler = RustBuildProfiler(args.path) - profiler.run_profile() - -if __name__ == "__main__": - main() \ No newline at end of file From 19816f9c6faa195e6b4c121fddb17ed3163ff496 Mon Sep 17 00:00:00 2001 From: Yuwen Zhang Date: Mon, 4 Nov 2024 15:02:06 -0800 Subject: [PATCH 12/14] checkout some old stuff --- crates/core/executor/src/dependencies.rs | 119 +++-- crates/core/executor/src/disassembler/rrs.rs | 57 +- crates/core/executor/src/events/alu.rs | 4 +- crates/core/executor/src/events/byte.rs | 2 +- crates/core/executor/src/events/cpu.rs | 8 - crates/core/executor/src/events/memory.rs | 8 +- crates/core/executor/src/events/utils.rs | 37 +- crates/core/executor/src/executor.rs | 486 ++++++++---------- crates/core/executor/src/instruction.rs | 4 +- crates/core/executor/src/memory.rs | 27 +- crates/core/executor/src/opcode.rs | 2 +- crates/core/executor/src/program.rs | 7 + crates/core/executor/src/record.rs | 71 ++- crates/core/executor/src/register.rs | 4 +- .../src/syscalls/precompiles/sha256/extend.rs | 10 +- crates/core/machine/src/alu/add_sub/mod.rs | 66 +-- crates/core/machine/src/alu/divrem/mod.rs | 28 +- crates/core/machine/src/alu/lt/mod.rs | 51 +- crates/core/machine/src/alu/mul/mod.rs | 283 +++++----- crates/core/machine/src/alu/sr/mod.rs | 73 +-- .../machine/src/cpu/columns/instruction.rs | 6 +- crates/core/machine/src/cpu/columns/opcode.rs | 2 +- crates/core/machine/src/cpu/trace.rs | 201 ++++---- crates/core/machine/src/memory/local.rs | 76 +-- crates/core/machine/src/memory/program.rs | 61 ++- crates/core/machine/src/program/mod.rs | 58 ++- crates/core/machine/src/runtime/utils.rs | 8 +- .../precompiles/edwards/ed_decompress.rs | 2 +- crates/prover/src/lib.rs | 8 +- crates/prover/src/shapes.rs | 21 +- 30 files changed, 873 insertions(+), 917 deletions(-) diff --git a/crates/core/executor/src/dependencies.rs b/crates/core/executor/src/dependencies.rs index 194d8d0eb..6b0bbbe33 100644 --- a/crates/core/executor/src/dependencies.rs +++ b/crates/core/executor/src/dependencies.rs @@ -1,5 +1,5 @@ use crate::{ - events::{create_alu_lookups, AluEvent, CpuEvent}, + events::AluEvent, utils::{get_msb, get_quotient_and_remainder, is_signed_operation}, Executor, Opcode, }; @@ -7,6 +7,7 @@ use crate::{ /// Emits the dependencies for division and remainder operations. #[allow(clippy::too_many_lines)] pub fn emit_divrem_dependencies(executor: &mut Executor, event: AluEvent) { + let shard = executor.shard(); let (quotient, remainder) = get_quotient_and_remainder(event.b, event.c, event.opcode); let c_msb = get_msb(event.c); let rem_msb = get_msb(remainder); @@ -19,27 +20,29 @@ pub fn emit_divrem_dependencies(executor: &mut Executor, event: AluEvent) { } if c_neg == 1 { + let ids = executor.record.create_lookup_ids(); executor.record.add_events.push(AluEvent { lookup_id: event.sub_lookups[4], - shard: event.shard, + shard, clk: event.clk, opcode: Opcode::ADD, a: 0, b: event.c, c: (event.c as i32).unsigned_abs(), - sub_lookups: create_alu_lookups(), + sub_lookups: ids, }); } if rem_neg == 1 { + let ids = executor.record.create_lookup_ids(); executor.record.add_events.push(AluEvent { lookup_id: event.sub_lookups[5], - shard: event.shard, + shard, clk: event.clk, opcode: Opcode::ADD, a: 0, b: remainder, c: (remainder as i32).unsigned_abs(), - sub_lookups: create_alu_lookups(), + sub_lookups: ids, }); } @@ -55,19 +58,19 @@ pub fn emit_divrem_dependencies(executor: &mut Executor, event: AluEvent) { let lower_multiplication = AluEvent { lookup_id: event.sub_lookups[0], - shard: event.shard, + shard, clk: event.clk, opcode: Opcode::MUL, a: lower_word, c: event.c, b: quotient, - sub_lookups: create_alu_lookups(), + sub_lookups: executor.record.create_lookup_ids(), }; executor.record.mul_events.push(lower_multiplication); let upper_multiplication = AluEvent { lookup_id: event.sub_lookups[1], - shard: event.shard, + shard, clk: event.clk, opcode: { if is_signed_operation { @@ -79,31 +82,31 @@ pub fn emit_divrem_dependencies(executor: &mut Executor, event: AluEvent) { a: upper_word, c: event.c, b: quotient, - sub_lookups: create_alu_lookups(), + sub_lookups: executor.record.create_lookup_ids(), }; executor.record.mul_events.push(upper_multiplication); let lt_event = if is_signed_operation { AluEvent { lookup_id: event.sub_lookups[2], - shard: event.shard, + shard, opcode: Opcode::SLTU, a: 1, b: (remainder as i32).unsigned_abs(), c: u32::max(1, (event.c as i32).unsigned_abs()), clk: event.clk, - sub_lookups: create_alu_lookups(), + sub_lookups: executor.record.create_lookup_ids(), } } else { AluEvent { lookup_id: event.sub_lookups[3], - shard: event.shard, + shard, opcode: Opcode::SLTU, a: 1, b: remainder, c: u32::max(1, event.c), clk: event.clk, - sub_lookups: create_alu_lookups(), + sub_lookups: executor.record.create_lookup_ids(), } }; @@ -114,9 +117,12 @@ pub fn emit_divrem_dependencies(executor: &mut Executor, event: AluEvent) { /// Emit the dependencies for CPU events. #[allow(clippy::too_many_lines)] -pub fn emit_cpu_dependencies(executor: &mut Executor, event: &CpuEvent) { +pub fn emit_cpu_dependencies(executor: &mut Executor, index: usize) { + let event = executor.record.cpu_events[index]; + let shard = executor.shard(); + let instruction = &executor.program.fetch(event.pc); if matches!( - event.instruction.opcode, + instruction.opcode, Opcode::LB | Opcode::LH | Opcode::LW @@ -130,58 +136,57 @@ pub fn emit_cpu_dependencies(executor: &mut Executor, event: &CpuEvent) { // Add event to ALU check to check that addr == b + c let add_event = AluEvent { lookup_id: event.memory_add_lookup_id, - shard: event.shard, + shard, clk: event.clk, opcode: Opcode::ADD, a: memory_addr, b: event.b, c: event.c, - sub_lookups: create_alu_lookups(), + sub_lookups: executor.record.create_lookup_ids(), }; executor.record.add_events.push(add_event); let addr_offset = (memory_addr % 4_u32) as u8; let mem_value = event.memory_record.unwrap().value(); - if matches!(event.instruction.opcode, Opcode::LB | Opcode::LH) { - let (unsigned_mem_val, most_sig_mem_value_byte, sign_value) = - match event.instruction.opcode { - Opcode::LB => { - let most_sig_mem_value_byte = mem_value.to_le_bytes()[addr_offset as usize]; - let sign_value = 256; - (most_sig_mem_value_byte as u32, most_sig_mem_value_byte, sign_value) - } - Opcode::LH => { - let sign_value = 65536; - let unsigned_mem_val = match (addr_offset >> 1) % 2 { - 0 => mem_value & 0x0000FFFF, - 1 => (mem_value & 0xFFFF0000) >> 16, - _ => unreachable!(), - }; - let most_sig_mem_value_byte = unsigned_mem_val.to_le_bytes()[1]; - (unsigned_mem_val, most_sig_mem_value_byte, sign_value) - } - _ => unreachable!(), - }; + if matches!(instruction.opcode, Opcode::LB | Opcode::LH) { + let (unsigned_mem_val, most_sig_mem_value_byte, sign_value) = match instruction.opcode { + Opcode::LB => { + let most_sig_mem_value_byte = mem_value.to_le_bytes()[addr_offset as usize]; + let sign_value = 256; + (most_sig_mem_value_byte as u32, most_sig_mem_value_byte, sign_value) + } + Opcode::LH => { + let sign_value = 65536; + let unsigned_mem_val = match (addr_offset >> 1) % 2 { + 0 => mem_value & 0x0000FFFF, + 1 => (mem_value & 0xFFFF0000) >> 16, + _ => unreachable!(), + }; + let most_sig_mem_value_byte = unsigned_mem_val.to_le_bytes()[1]; + (unsigned_mem_val, most_sig_mem_value_byte, sign_value) + } + _ => unreachable!(), + }; if most_sig_mem_value_byte >> 7 & 0x01 == 1 { let sub_event = AluEvent { lookup_id: event.memory_sub_lookup_id, - shard: event.shard, + shard, clk: event.clk, opcode: Opcode::SUB, a: event.a, b: unsigned_mem_val, c: sign_value, - sub_lookups: create_alu_lookups(), + sub_lookups: executor.record.create_lookup_ids(), }; executor.record.add_events.push(sub_event); } } } - if event.instruction.is_branch_instruction() { + if instruction.is_branch_instruction() { let a_eq_b = event.a == event.b; - let use_signed_comparison = matches!(event.instruction.opcode, Opcode::BLT | Opcode::BGE); + let use_signed_comparison = matches!(instruction.opcode, Opcode::BLT | Opcode::BGE); let a_lt_b = if use_signed_comparison { (event.a as i32) < (event.b as i32) } else { @@ -197,27 +202,27 @@ pub fn emit_cpu_dependencies(executor: &mut Executor, event: &CpuEvent) { // Add the ALU events for the comparisons let lt_comp_event = AluEvent { lookup_id: event.branch_lt_lookup_id, - shard: event.shard, + shard, clk: event.clk, opcode: alu_op_code, a: a_lt_b as u32, b: event.a, c: event.b, - sub_lookups: create_alu_lookups(), + sub_lookups: executor.record.create_lookup_ids(), }; let gt_comp_event = AluEvent { lookup_id: event.branch_gt_lookup_id, - shard: event.shard, + shard, clk: event.clk, opcode: alu_op_code, a: a_gt_b as u32, b: event.b, c: event.a, - sub_lookups: create_alu_lookups(), + sub_lookups: executor.record.create_lookup_ids(), }; executor.record.lt_events.push(lt_comp_event); executor.record.lt_events.push(gt_comp_event); - let branching = match event.instruction.opcode { + let branching = match instruction.opcode { Opcode::BEQ => a_eq_b, Opcode::BNE => !a_eq_b, Opcode::BLT | Opcode::BLTU => a_lt_b, @@ -228,31 +233,31 @@ pub fn emit_cpu_dependencies(executor: &mut Executor, event: &CpuEvent) { let next_pc = event.pc.wrapping_add(event.c); let add_event = AluEvent { lookup_id: event.branch_add_lookup_id, - shard: event.shard, + shard, clk: event.clk, opcode: Opcode::ADD, a: next_pc, b: event.pc, c: event.c, - sub_lookups: create_alu_lookups(), + sub_lookups: executor.record.create_lookup_ids(), }; executor.record.add_events.push(add_event); } } - if event.instruction.is_jump_instruction() { - match event.instruction.opcode { + if instruction.is_jump_instruction() { + match instruction.opcode { Opcode::JAL => { let next_pc = event.pc.wrapping_add(event.b); let add_event = AluEvent { lookup_id: event.jump_jal_lookup_id, - shard: event.shard, + shard, clk: event.clk, opcode: Opcode::ADD, a: next_pc, b: event.pc, c: event.b, - sub_lookups: create_alu_lookups(), + sub_lookups: executor.record.create_lookup_ids(), }; executor.record.add_events.push(add_event); } @@ -260,13 +265,13 @@ pub fn emit_cpu_dependencies(executor: &mut Executor, event: &CpuEvent) { let next_pc = event.b.wrapping_add(event.c); let add_event = AluEvent { lookup_id: event.jump_jalr_lookup_id, - shard: event.shard, + shard, clk: event.clk, opcode: Opcode::ADD, a: next_pc, b: event.b, c: event.c, - sub_lookups: create_alu_lookups(), + sub_lookups: executor.record.create_lookup_ids(), }; executor.record.add_events.push(add_event); } @@ -274,16 +279,16 @@ pub fn emit_cpu_dependencies(executor: &mut Executor, event: &CpuEvent) { } } - if matches!(event.instruction.opcode, Opcode::AUIPC) { + if matches!(instruction.opcode, Opcode::AUIPC) { let add_event = AluEvent { lookup_id: event.auipc_lookup_id, - shard: event.shard, + shard, clk: event.clk, opcode: Opcode::ADD, a: event.a, b: event.pc, c: event.b, - sub_lookups: create_alu_lookups(), + sub_lookups: executor.record.create_lookup_ids(), }; executor.record.add_events.push(add_event); } diff --git a/crates/core/executor/src/disassembler/rrs.rs b/crates/core/executor/src/disassembler/rrs.rs index 711dbe4e4..a105e10a8 100644 --- a/crates/core/executor/src/disassembler/rrs.rs +++ b/crates/core/executor/src/disassembler/rrs.rs @@ -9,52 +9,31 @@ impl Instruction { /// Create a new [`Instruction`] from an R-type instruction. #[must_use] pub const fn from_r_type(opcode: Opcode, dec_insn: &RType) -> Self { - Self::new( - opcode, - dec_insn.rd as u32, - dec_insn.rs1 as u32, - dec_insn.rs2 as u32, - false, - false, - ) + Self::new(opcode, dec_insn.rd as u8, dec_insn.rs1 as u32, dec_insn.rs2 as u32, false, false) } /// Create a new [`Instruction`] from an I-type instruction. #[must_use] pub const fn from_i_type(opcode: Opcode, dec_insn: &IType) -> Self { - Self::new(opcode, dec_insn.rd as u32, dec_insn.rs1 as u32, dec_insn.imm as u32, false, true) + Self::new(opcode, dec_insn.rd as u8, dec_insn.rs1 as u32, dec_insn.imm as u32, false, true) } /// Create a new [`Instruction`] from an I-type instruction with a shamt. #[must_use] pub const fn from_i_type_shamt(opcode: Opcode, dec_insn: &ITypeShamt) -> Self { - Self::new(opcode, dec_insn.rd as u32, dec_insn.rs1 as u32, dec_insn.shamt, false, true) + Self::new(opcode, dec_insn.rd as u8, dec_insn.rs1 as u32, dec_insn.shamt, false, true) } /// Create a new [`Instruction`] from an S-type instruction. #[must_use] pub const fn from_s_type(opcode: Opcode, dec_insn: &SType) -> Self { - Self::new( - opcode, - dec_insn.rs2 as u32, - dec_insn.rs1 as u32, - dec_insn.imm as u32, - false, - true, - ) + Self::new(opcode, dec_insn.rs2 as u8, dec_insn.rs1 as u32, dec_insn.imm as u32, false, true) } /// Create a new [`Instruction`] from a B-type instruction. #[must_use] pub const fn from_b_type(opcode: Opcode, dec_insn: &BType) -> Self { - Self::new( - opcode, - dec_insn.rs1 as u32, - dec_insn.rs2 as u32, - dec_insn.imm as u32, - false, - true, - ) + Self::new(opcode, dec_insn.rs1 as u8, dec_insn.rs2 as u32, dec_insn.imm as u32, false, true) } /// Create a new [`Instruction`] that is not implemented. @@ -82,9 +61,9 @@ impl Instruction { #[must_use] pub fn r_type(&self) -> (Register, Register, Register) { ( - Register::from_u32(self.op_a), - Register::from_u32(self.op_b), - Register::from_u32(self.op_c), + Register::from_u8(self.op_a), + Register::from_u8(self.op_b as u8), + Register::from_u8(self.op_c as u8), ) } @@ -92,35 +71,35 @@ impl Instruction { #[inline] #[must_use] pub fn i_type(&self) -> (Register, Register, u32) { - (Register::from_u32(self.op_a), Register::from_u32(self.op_b), self.op_c) + (Register::from_u8(self.op_a), Register::from_u8(self.op_b as u8), self.op_c) } /// Decode the [`Instruction`] in the S-type format. #[inline] #[must_use] pub fn s_type(&self) -> (Register, Register, u32) { - (Register::from_u32(self.op_a), Register::from_u32(self.op_b), self.op_c) + (Register::from_u8(self.op_a), Register::from_u8(self.op_b as u8), self.op_c) } /// Decode the [`Instruction`] in the B-type format. #[inline] #[must_use] pub fn b_type(&self) -> (Register, Register, u32) { - (Register::from_u32(self.op_a), Register::from_u32(self.op_b), self.op_c) + (Register::from_u8(self.op_a), Register::from_u8(self.op_b as u8), self.op_c) } /// Decode the [`Instruction`] in the J-type format. #[inline] #[must_use] pub fn j_type(&self) -> (Register, u32) { - (Register::from_u32(self.op_a), self.op_b) + (Register::from_u8(self.op_a), self.op_b) } /// Decode the [`Instruction`] in the U-type format. #[inline] #[must_use] pub fn u_type(&self) -> (Register, u32) { - (Register::from_u32(self.op_a), self.op_b) + (Register::from_u8(self.op_a), self.op_b) } } @@ -263,13 +242,13 @@ impl InstructionProcessor for InstructionTranspiler { } fn process_jal(&mut self, dec_insn: JType) -> Self::InstructionResult { - Instruction::new(Opcode::JAL, dec_insn.rd as u32, dec_insn.imm as u32, 0, true, true) + Instruction::new(Opcode::JAL, dec_insn.rd as u8, dec_insn.imm as u32, 0, true, true) } fn process_jalr(&mut self, dec_insn: IType) -> Self::InstructionResult { Instruction::new( Opcode::JALR, - dec_insn.rd as u32, + dec_insn.rd as u8, dec_insn.rs1 as u32, dec_insn.imm as u32, false, @@ -282,14 +261,14 @@ impl InstructionProcessor for InstructionTranspiler { // // Notably, LUI instructions are converted to an SLL instruction with `imm_b` and `imm_c` // turned on. Additionally the `op_c` should be set to 12. - Instruction::new(Opcode::ADD, dec_insn.rd as u32, 0, dec_insn.imm as u32, true, true) + Instruction::new(Opcode::ADD, dec_insn.rd as u8, 0, dec_insn.imm as u32, true, true) } /// AUIPC instructions have the third operand set to imm << 12. fn process_auipc(&mut self, dec_insn: UType) -> Self::InstructionResult { Instruction::new( Opcode::AUIPC, - dec_insn.rd as u32, + dec_insn.rd as u8, dec_insn.imm as u32, dec_insn.imm as u32, true, @@ -300,7 +279,7 @@ impl InstructionProcessor for InstructionTranspiler { fn process_ecall(&mut self) -> Self::InstructionResult { Instruction::new( Opcode::ECALL, - Register::X5 as u32, + Register::X5 as u8, Register::X10 as u32, Register::X11 as u32, false, diff --git a/crates/core/executor/src/events/alu.rs b/crates/core/executor/src/events/alu.rs index bf79a65e4..2d2b14fe0 100644 --- a/crates/core/executor/src/events/alu.rs +++ b/crates/core/executor/src/events/alu.rs @@ -2,7 +2,7 @@ use serde::{Deserialize, Serialize}; use crate::Opcode; -use super::{create_alu_lookups, LookupId}; +use super::{create_random_lookup_ids, LookupId}; /// Arithmetic Logic Unit (ALU) Event. /// @@ -40,7 +40,7 @@ impl AluEvent { a, b, c, - sub_lookups: create_alu_lookups(), + sub_lookups: create_random_lookup_ids(), } } } diff --git a/crates/core/executor/src/events/byte.rs b/crates/core/executor/src/events/byte.rs index 4e5f25437..3db5c7647 100644 --- a/crates/core/executor/src/events/byte.rs +++ b/crates/core/executor/src/events/byte.rs @@ -233,7 +233,7 @@ impl ByteOpcode { ByteOpcode::MSB, ByteOpcode::U16Range, ]; - assert_eq!(opcodes.len(), NUM_BYTE_OPS); + debug_assert_eq!(opcodes.len(), NUM_BYTE_OPS); opcodes } diff --git a/crates/core/executor/src/events/cpu.rs b/crates/core/executor/src/events/cpu.rs index b2d775cf1..f609e941c 100644 --- a/crates/core/executor/src/events/cpu.rs +++ b/crates/core/executor/src/events/cpu.rs @@ -1,7 +1,5 @@ use serde::{Deserialize, Serialize}; -use crate::Instruction; - use super::{memory::MemoryRecordEnum, LookupId}; /// CPU Event. @@ -10,16 +8,12 @@ use super::{memory::MemoryRecordEnum, LookupId}; /// shard, opcode, operands, and other relevant information. #[derive(Debug, Copy, Clone, Serialize, Deserialize)] pub struct CpuEvent { - /// The shard number. - pub shard: u32, /// The clock cycle. pub clk: u32, /// The program counter. pub pc: u32, /// The next program counter. pub next_pc: u32, - /// The instruction. - pub instruction: Instruction, /// The first operand. pub a: u32, /// The first operand memory record. @@ -32,8 +26,6 @@ pub struct CpuEvent { pub c: u32, /// The third operand memory record. pub c_record: Option, - /// The memory value. - pub memory: Option, /// The memory record. pub memory_record: Option, /// The exit code. diff --git a/crates/core/executor/src/events/memory.rs b/crates/core/executor/src/events/memory.rs index 4372f2126..655e0fc21 100644 --- a/crates/core/executor/src/events/memory.rs +++ b/crates/core/executor/src/events/memory.rs @@ -150,7 +150,9 @@ impl MemoryReadRecord { prev_shard: u32, prev_timestamp: u32, ) -> Self { - assert!(shard > prev_shard || ((shard == prev_shard) && (timestamp > prev_timestamp))); + debug_assert!( + shard > prev_shard || ((shard == prev_shard) && (timestamp > prev_timestamp)) + ); Self { value, shard, timestamp, prev_shard, prev_timestamp } } } @@ -166,7 +168,9 @@ impl MemoryWriteRecord { prev_shard: u32, prev_timestamp: u32, ) -> Self { - assert!(shard > prev_shard || ((shard == prev_shard) && (timestamp > prev_timestamp)),); + debug_assert!( + shard > prev_shard || ((shard == prev_shard) && (timestamp > prev_timestamp)), + ); Self { value, shard, timestamp, prev_value, prev_shard, prev_timestamp } } } diff --git a/crates/core/executor/src/events/utils.rs b/crates/core/executor/src/events/utils.rs index 681bc6cc7..d4b38df74 100644 --- a/crates/core/executor/src/events/utils.rs +++ b/crates/core/executor/src/events/utils.rs @@ -5,43 +5,16 @@ use std::{ iter::{Map, Peekable}, }; -use rand::{thread_rng, Rng}; - /// A unique identifier for lookups. -/// -/// We use 4 u32s instead of a u128 to make it compatible with C. #[derive(Deserialize, Serialize, Debug, Clone, Copy, Default, Eq, Hash, PartialEq)] -pub struct LookupId { - /// First part of the id. - pub a: u32, - /// Second part of the id. - pub b: u32, - /// Third part of the id. - pub c: u32, - /// Fourth part of the id. - pub d: u32, -} - -/// Creates a new ALU lookup id with ``LookupId`` -#[must_use] -pub fn create_alu_lookup_id() -> LookupId { - let mut rng = thread_rng(); - LookupId { a: rng.gen(), b: rng.gen(), c: rng.gen(), d: rng.gen() } -} +pub struct LookupId(pub u64); -/// Creates a new ALU lookup id with ``LookupId`` +/// Create a random lookup id. This is slower than `record.create_lookup_id()` but is useful for +/// testing. #[must_use] -pub fn create_alu_lookups() -> [LookupId; 6] { - let mut rng = thread_rng(); - [ - LookupId { a: rng.gen(), b: rng.gen(), c: rng.gen(), d: rng.gen() }, - LookupId { a: rng.gen(), b: rng.gen(), c: rng.gen(), d: rng.gen() }, - LookupId { a: rng.gen(), b: rng.gen(), c: rng.gen(), d: rng.gen() }, - LookupId { a: rng.gen(), b: rng.gen(), c: rng.gen(), d: rng.gen() }, - LookupId { a: rng.gen(), b: rng.gen(), c: rng.gen(), d: rng.gen() }, - LookupId { a: rng.gen(), b: rng.gen(), c: rng.gen(), d: rng.gen() }, - ] +pub(crate) fn create_random_lookup_ids() -> [LookupId; 6] { + std::array::from_fn(|_| LookupId(rand::random())) } /// Returns sorted and formatted rows of a table of counts (e.g. `opcode_counts`). diff --git a/crates/core/executor/src/executor.rs b/crates/core/executor/src/executor.rs index e1032882d..3fc3403fb 100644 --- a/crates/core/executor/src/executor.rs +++ b/crates/core/executor/src/executor.rs @@ -13,9 +13,8 @@ use crate::{ context::SP1Context, dependencies::{emit_cpu_dependencies, emit_divrem_dependencies}, events::{ - create_alu_lookup_id, create_alu_lookups, AluEvent, CpuEvent, LookupId, - MemoryAccessPosition, MemoryInitializeFinalizeEvent, MemoryLocalEvent, MemoryReadRecord, - MemoryRecord, MemoryWriteRecord, SyscallEvent, + AluEvent, CpuEvent, LookupId, MemoryAccessPosition, MemoryInitializeFinalizeEvent, + MemoryLocalEvent, MemoryReadRecord, MemoryRecord, MemoryWriteRecord, SyscallEvent, }, hook::{HookEnv, HookRegistry}, memory::{Entry, PagedMemory}, @@ -273,7 +272,7 @@ impl<'a> Executor<'a> { pub fn registers(&mut self) -> [u32; 32] { let mut registers = [0; 32]; for i in 0..32 { - let addr = Register::from_u32(i as u32) as u32; + let addr = Register::from_u8(i as u8) as u32; let record = self.state.memory.get(addr); // Only add the previous memory state to checkpoint map if we're in checkpoint mode, @@ -411,7 +410,7 @@ impl<'a> Executor<'a> { record.shard = shard; record.timestamp = timestamp; - if !self.unconstrained { + if !self.unconstrained && self.executor_mode == ExecutorMode::Trace { let local_memory_access = if let Some(local_memory_access) = local_memory_access { local_memory_access } else { @@ -490,7 +489,7 @@ impl<'a> Executor<'a> { record.shard = shard; record.timestamp = timestamp; - if !self.unconstrained { + if !self.unconstrained && self.executor_mode == ExecutorMode::Trace { let local_memory_access = if let Some(local_memory_access) = local_memory_access { local_memory_access } else { @@ -557,19 +556,19 @@ impl<'a> Executor<'a> { if !self.unconstrained && self.executor_mode == ExecutorMode::Trace { match position { MemoryAccessPosition::A => { - assert!(self.memory_accesses.a.is_none()); + debug_assert!(self.memory_accesses.a.is_none()); self.memory_accesses.a = Some(record.into()); } MemoryAccessPosition::B => { - assert!(self.memory_accesses.b.is_none()); + debug_assert!(self.memory_accesses.b.is_none()); self.memory_accesses.b = Some(record.into()); } MemoryAccessPosition::C => { - assert!(self.memory_accesses.c.is_none()); + debug_assert!(self.memory_accesses.c.is_none()); self.memory_accesses.c = Some(record.into()); } MemoryAccessPosition::Memory => { - assert!(self.memory_accesses.memory.is_none()); + debug_assert!(self.memory_accesses.memory.is_none()); self.memory_accesses.memory = Some(record.into()); } } @@ -597,49 +596,50 @@ impl<'a> Executor<'a> { #[allow(clippy::too_many_arguments)] fn emit_cpu( &mut self, - shard: u32, clk: u32, pc: u32, next_pc: u32, - instruction: Instruction, a: u32, b: u32, c: u32, - memory_store_value: Option, record: MemoryAccessRecord, exit_code: u32, lookup_id: LookupId, syscall_lookup_id: LookupId, ) { - let cpu_event = CpuEvent { - shard, + let memory_add_lookup_id = self.record.create_lookup_id(); + let memory_sub_lookup_id = self.record.create_lookup_id(); + let branch_lt_lookup_id = self.record.create_lookup_id(); + let branch_gt_lookup_id = self.record.create_lookup_id(); + let branch_add_lookup_id = self.record.create_lookup_id(); + let jump_jal_lookup_id = self.record.create_lookup_id(); + let jump_jalr_lookup_id = self.record.create_lookup_id(); + let auipc_lookup_id = self.record.create_lookup_id(); + self.record.cpu_events.push(CpuEvent { clk, pc, next_pc, - instruction, a, a_record: record.a, b, b_record: record.b, c, c_record: record.c, - memory: memory_store_value, memory_record: record.memory, exit_code, alu_lookup_id: lookup_id, syscall_lookup_id, - memory_add_lookup_id: create_alu_lookup_id(), - memory_sub_lookup_id: create_alu_lookup_id(), - branch_lt_lookup_id: create_alu_lookup_id(), - branch_gt_lookup_id: create_alu_lookup_id(), - branch_add_lookup_id: create_alu_lookup_id(), - jump_jal_lookup_id: create_alu_lookup_id(), - jump_jalr_lookup_id: create_alu_lookup_id(), - auipc_lookup_id: create_alu_lookup_id(), - }; + memory_add_lookup_id, + memory_sub_lookup_id, + branch_lt_lookup_id, + branch_gt_lookup_id, + branch_add_lookup_id, + jump_jal_lookup_id, + jump_jalr_lookup_id, + auipc_lookup_id, + }); - self.record.cpu_events.push(cpu_event); - emit_cpu_dependencies(self, &cpu_event); + emit_cpu_dependencies(self, self.record.cpu_events.len() - 1); } /// Emit an ALU event. @@ -652,7 +652,7 @@ impl<'a> Executor<'a> { a, b, c, - sub_lookups: create_alu_lookups(), + sub_lookups: self.record.create_lookup_ids(), }; match opcode { Opcode::ADD => { @@ -700,7 +700,7 @@ impl<'a> Executor<'a> { arg1, arg2, lookup_id, - nonce: self.record.nonce_lookup[&lookup_id], + nonce: self.record.nonce_lookup[lookup_id.0 as usize], } } @@ -729,9 +729,9 @@ impl<'a> Executor<'a> { let (rd, b, c) = (rd, self.rr(rs1, MemoryAccessPosition::B), imm); (rd, b, c) } else { - assert!(instruction.imm_b && instruction.imm_c); + debug_assert!(instruction.imm_b && instruction.imm_c); let (rd, b, c) = - (Register::from_u32(instruction.op_a), instruction.op_b, instruction.op_c); + (Register::from_u8(instruction.op_a), instruction.op_b, instruction.op_c); (rd, b, c) } } @@ -784,8 +784,7 @@ impl<'a> Executor<'a> { /// Fetch the instruction at the current program counter. #[inline] fn fetch(&self) -> Instruction { - let idx = ((self.state.pc - self.program.pc_base) / 4) as usize; - self.program.instructions[idx] + *self.program.fetch(self.state.pc) } /// Execute the given instruction over the current state of the runtime. @@ -797,21 +796,18 @@ impl<'a> Executor<'a> { let mut next_pc = self.state.pc.wrapping_add(4); - let rd: Register; let (a, b, c): (u32, u32, u32); - let (addr, memory_read_value): (u32, u32); - let mut memory_store_value: Option = None; if self.executor_mode == ExecutorMode::Trace { self.memory_accesses = MemoryAccessRecord::default(); } let lookup_id = if self.executor_mode == ExecutorMode::Trace { - create_alu_lookup_id() + self.record.create_lookup_id() } else { LookupId::default() }; let syscall_lookup_id = if self.executor_mode == ExecutorMode::Trace { - create_alu_lookup_id() + self.record.create_lookup_id() } else { LookupId::default() }; @@ -846,182 +842,40 @@ impl<'a> Executor<'a> { match instruction.opcode { // Arithmetic instructions. - Opcode::ADD => { - (rd, b, c) = self.alu_rr(instruction); - a = b.wrapping_add(c); - self.alu_rw(instruction, rd, a, b, c, lookup_id); - } - Opcode::SUB => { - (rd, b, c) = self.alu_rr(instruction); - a = b.wrapping_sub(c); - self.alu_rw(instruction, rd, a, b, c, lookup_id); - } - Opcode::XOR => { - (rd, b, c) = self.alu_rr(instruction); - a = b ^ c; - self.alu_rw(instruction, rd, a, b, c, lookup_id); - } - Opcode::OR => { - (rd, b, c) = self.alu_rr(instruction); - a = b | c; - self.alu_rw(instruction, rd, a, b, c, lookup_id); - } - Opcode::AND => { - (rd, b, c) = self.alu_rr(instruction); - a = b & c; - self.alu_rw(instruction, rd, a, b, c, lookup_id); - } - Opcode::SLL => { - (rd, b, c) = self.alu_rr(instruction); - a = b.wrapping_shl(c); - self.alu_rw(instruction, rd, a, b, c, lookup_id); - } - Opcode::SRL => { - (rd, b, c) = self.alu_rr(instruction); - a = b.wrapping_shr(c); - self.alu_rw(instruction, rd, a, b, c, lookup_id); - } - Opcode::SRA => { - (rd, b, c) = self.alu_rr(instruction); - a = (b as i32).wrapping_shr(c) as u32; - self.alu_rw(instruction, rd, a, b, c, lookup_id); - } - Opcode::SLT => { - (rd, b, c) = self.alu_rr(instruction); - a = if (b as i32) < (c as i32) { 1 } else { 0 }; - self.alu_rw(instruction, rd, a, b, c, lookup_id); - } - Opcode::SLTU => { - (rd, b, c) = self.alu_rr(instruction); - a = if b < c { 1 } else { 0 }; - self.alu_rw(instruction, rd, a, b, c, lookup_id); + Opcode::ADD + | Opcode::SUB + | Opcode::XOR + | Opcode::OR + | Opcode::AND + | Opcode::SLL + | Opcode::SRL + | Opcode::SRA + | Opcode::SLT + | Opcode::SLTU + | Opcode::MUL + | Opcode::MULH + | Opcode::MULHU + | Opcode::MULHSU + | Opcode::DIV + | Opcode::DIVU + | Opcode::REM + | Opcode::REMU => { + (a, b, c) = self.execute_alu(instruction, lookup_id); } // Load instructions. - Opcode::LB => { - (rd, b, c, addr, memory_read_value) = self.load_rr(instruction); - let value = (memory_read_value).to_le_bytes()[(addr % 4) as usize]; - a = ((value as i8) as i32) as u32; - memory_store_value = Some(memory_read_value); - self.rw(rd, a); - } - Opcode::LH => { - (rd, b, c, addr, memory_read_value) = self.load_rr(instruction); - if addr % 2 != 0 { - return Err(ExecutionError::InvalidMemoryAccess(Opcode::LH, addr)); - } - let value = match (addr >> 1) % 2 { - 0 => memory_read_value & 0x0000_FFFF, - 1 => (memory_read_value & 0xFFFF_0000) >> 16, - _ => unreachable!(), - }; - a = ((value as i16) as i32) as u32; - memory_store_value = Some(memory_read_value); - self.rw(rd, a); - } - Opcode::LW => { - (rd, b, c, addr, memory_read_value) = self.load_rr(instruction); - if addr % 4 != 0 { - return Err(ExecutionError::InvalidMemoryAccess(Opcode::LW, addr)); - } - a = memory_read_value; - memory_store_value = Some(memory_read_value); - self.rw(rd, a); - } - Opcode::LBU => { - (rd, b, c, addr, memory_read_value) = self.load_rr(instruction); - let value = (memory_read_value).to_le_bytes()[(addr % 4) as usize]; - a = value as u32; - memory_store_value = Some(memory_read_value); - self.rw(rd, a); - } - Opcode::LHU => { - (rd, b, c, addr, memory_read_value) = self.load_rr(instruction); - if addr % 2 != 0 { - return Err(ExecutionError::InvalidMemoryAccess(Opcode::LHU, addr)); - } - let value = match (addr >> 1) % 2 { - 0 => memory_read_value & 0x0000_FFFF, - 1 => (memory_read_value & 0xFFFF_0000) >> 16, - _ => unreachable!(), - }; - a = (value as u16) as u32; - memory_store_value = Some(memory_read_value); - self.rw(rd, a); + Opcode::LB | Opcode::LH | Opcode::LW | Opcode::LBU | Opcode::LHU => { + (a, b, c) = self.execute_load(instruction)?; } // Store instructions. - Opcode::SB => { - (a, b, c, addr, memory_read_value) = self.store_rr(instruction); - let value = match addr % 4 { - 0 => (a & 0x0000_00FF) + (memory_read_value & 0xFFFF_FF00), - 1 => ((a & 0x0000_00FF) << 8) + (memory_read_value & 0xFFFF_00FF), - 2 => ((a & 0x0000_00FF) << 16) + (memory_read_value & 0xFF00_FFFF), - 3 => ((a & 0x0000_00FF) << 24) + (memory_read_value & 0x00FF_FFFF), - _ => unreachable!(), - }; - memory_store_value = Some(value); - self.mw_cpu(align(addr), value, MemoryAccessPosition::Memory); - } - Opcode::SH => { - (a, b, c, addr, memory_read_value) = self.store_rr(instruction); - if addr % 2 != 0 { - return Err(ExecutionError::InvalidMemoryAccess(Opcode::SH, addr)); - } - let value = match (addr >> 1) % 2 { - 0 => (a & 0x0000_FFFF) + (memory_read_value & 0xFFFF_0000), - 1 => ((a & 0x0000_FFFF) << 16) + (memory_read_value & 0x0000_FFFF), - _ => unreachable!(), - }; - memory_store_value = Some(value); - self.mw_cpu(align(addr), value, MemoryAccessPosition::Memory); - } - Opcode::SW => { - (a, b, c, addr, _) = self.store_rr(instruction); - if addr % 4 != 0 { - return Err(ExecutionError::InvalidMemoryAccess(Opcode::SW, addr)); - } - let value = a; - memory_store_value = Some(value); - self.mw_cpu(align(addr), value, MemoryAccessPosition::Memory); + Opcode::SB | Opcode::SH | Opcode::SW => { + (a, b, c) = self.execute_store(instruction)?; } - // B-type instructions. - Opcode::BEQ => { - (a, b, c) = self.branch_rr(instruction); - if a == b { - next_pc = self.state.pc.wrapping_add(c); - } - } - Opcode::BNE => { - (a, b, c) = self.branch_rr(instruction); - if a != b { - next_pc = self.state.pc.wrapping_add(c); - } - } - Opcode::BLT => { - (a, b, c) = self.branch_rr(instruction); - if (a as i32) < (b as i32) { - next_pc = self.state.pc.wrapping_add(c); - } - } - Opcode::BGE => { - (a, b, c) = self.branch_rr(instruction); - if (a as i32) >= (b as i32) { - next_pc = self.state.pc.wrapping_add(c); - } - } - Opcode::BLTU => { - (a, b, c) = self.branch_rr(instruction); - if a < b { - next_pc = self.state.pc.wrapping_add(c); - } - } - Opcode::BGEU => { - (a, b, c) = self.branch_rr(instruction); - if a >= b { - next_pc = self.state.pc.wrapping_add(c); - } + // Branch instructions. + Opcode::BEQ | Opcode::BNE | Opcode::BLT | Opcode::BGE | Opcode::BLTU | Opcode::BGEU => { + (a, b, c, next_pc) = self.execute_branch(instruction, next_pc); } // Jump instructions. @@ -1084,7 +938,7 @@ impl<'a> Executor<'a> { _ => (self.opts.split_opts.deferred, 1), }; let nonce = (((*syscall_count as usize) % threshold) * multiplier) as u32; - self.record.nonce_lookup.insert(syscall_lookup_id, nonce); + self.record.nonce_lookup[syscall_lookup_id.0 as usize] = nonce; *syscall_count += 1; let syscall_impl = self.get_syscall(syscall).cloned(); @@ -1134,64 +988,6 @@ impl<'a> Executor<'a> { return Err(ExecutionError::Breakpoint()); } - // Multiply instructions. - Opcode::MUL => { - (rd, b, c) = self.alu_rr(instruction); - a = b.wrapping_mul(c); - self.alu_rw(instruction, rd, a, b, c, lookup_id); - } - Opcode::MULH => { - (rd, b, c) = self.alu_rr(instruction); - a = (((b as i32) as i64).wrapping_mul((c as i32) as i64) >> 32) as u32; - self.alu_rw(instruction, rd, a, b, c, lookup_id); - } - Opcode::MULHU => { - (rd, b, c) = self.alu_rr(instruction); - a = ((b as u64).wrapping_mul(c as u64) >> 32) as u32; - self.alu_rw(instruction, rd, a, b, c, lookup_id); - } - Opcode::MULHSU => { - (rd, b, c) = self.alu_rr(instruction); - a = (((b as i32) as i64).wrapping_mul(c as i64) >> 32) as u32; - self.alu_rw(instruction, rd, a, b, c, lookup_id); - } - Opcode::DIV => { - (rd, b, c) = self.alu_rr(instruction); - if c == 0 { - a = u32::MAX; - } else { - a = (b as i32).wrapping_div(c as i32) as u32; - } - self.alu_rw(instruction, rd, a, b, c, lookup_id); - } - Opcode::DIVU => { - (rd, b, c) = self.alu_rr(instruction); - if c == 0 { - a = u32::MAX; - } else { - a = b.wrapping_div(c); - } - self.alu_rw(instruction, rd, a, b, c, lookup_id); - } - Opcode::REM => { - (rd, b, c) = self.alu_rr(instruction); - if c == 0 { - a = b; - } else { - a = (b as i32).wrapping_rem(c as i32) as u32; - } - self.alu_rw(instruction, rd, a, b, c, lookup_id); - } - Opcode::REMU => { - (rd, b, c) = self.alu_rr(instruction); - if c == 0 { - a = b; - } else { - a = b.wrapping_rem(c); - } - self.alu_rw(instruction, rd, a, b, c, lookup_id); - } - // See https://github.com/riscv-non-isa/riscv-asm-manual/blob/master/riscv-asm.md#instruction-aliases Opcode::UNIMP => { return Err(ExecutionError::Unimplemented()); @@ -1207,15 +1003,12 @@ impl<'a> Executor<'a> { // Emit the CPU event for this cycle. if self.executor_mode == ExecutorMode::Trace { self.emit_cpu( - self.shard(), clk, pc, next_pc, - *instruction, a, b, c, - memory_store_value, self.memory_accesses, exit_code, lookup_id, @@ -1225,6 +1018,153 @@ impl<'a> Executor<'a> { Ok(()) } + fn execute_alu(&mut self, instruction: &Instruction, lookup_id: LookupId) -> (u32, u32, u32) { + let (rd, b, c) = self.alu_rr(instruction); + let a = match instruction.opcode { + Opcode::ADD => b.wrapping_add(c), + Opcode::SUB => b.wrapping_sub(c), + Opcode::XOR => b ^ c, + Opcode::OR => b | c, + Opcode::AND => b & c, + Opcode::SLL => b.wrapping_shl(c), + Opcode::SRL => b.wrapping_shr(c), + Opcode::SRA => (b as i32).wrapping_shr(c) as u32, + Opcode::SLT => { + if (b as i32) < (c as i32) { + 1 + } else { + 0 + } + } + Opcode::SLTU => { + if b < c { + 1 + } else { + 0 + } + } + Opcode::MUL => b.wrapping_mul(c), + Opcode::MULH => (((b as i32) as i64).wrapping_mul((c as i32) as i64) >> 32) as u32, + Opcode::MULHU => ((b as u64).wrapping_mul(c as u64) >> 32) as u32, + Opcode::MULHSU => (((b as i32) as i64).wrapping_mul(c as i64) >> 32) as u32, + Opcode::DIV => { + if c == 0 { + u32::MAX + } else { + (b as i32).wrapping_div(c as i32) as u32 + } + } + Opcode::DIVU => { + if c == 0 { + u32::MAX + } else { + b.wrapping_div(c) + } + } + Opcode::REM => { + if c == 0 { + b + } else { + (b as i32).wrapping_rem(c as i32) as u32 + } + } + Opcode::REMU => { + if c == 0 { + b + } else { + b.wrapping_rem(c) + } + } + _ => unreachable!(), + }; + self.alu_rw(instruction, rd, a, b, c, lookup_id); + (a, b, c) + } + + fn execute_load( + &mut self, + instruction: &Instruction, + ) -> Result<(u32, u32, u32), ExecutionError> { + let (rd, b, c, addr, memory_read_value) = self.load_rr(instruction); + let a = match instruction.opcode { + Opcode::LB => ((memory_read_value >> ((addr % 4) * 8)) & 0xFF) as i8 as i32 as u32, + Opcode::LH => { + if addr % 2 != 0 { + return Err(ExecutionError::InvalidMemoryAccess(Opcode::LH, addr)); + } + ((memory_read_value >> (((addr / 2) % 2) * 16)) & 0xFFFF) as i16 as i32 as u32 + } + Opcode::LW => { + if addr % 4 != 0 { + return Err(ExecutionError::InvalidMemoryAccess(Opcode::LW, addr)); + } + memory_read_value + } + Opcode::LBU => (memory_read_value >> ((addr % 4) * 8)) & 0xFF, + Opcode::LHU => { + if addr % 2 != 0 { + return Err(ExecutionError::InvalidMemoryAccess(Opcode::LHU, addr)); + } + (memory_read_value >> (((addr / 2) % 2) * 16)) & 0xFFFF + } + _ => unreachable!(), + }; + self.rw(rd, a); + Ok((a, b, c)) + } + + fn execute_store( + &mut self, + instruction: &Instruction, + ) -> Result<(u32, u32, u32), ExecutionError> { + let (a, b, c, addr, memory_read_value) = self.store_rr(instruction); + let memory_store_value = match instruction.opcode { + Opcode::SB => { + let shift = (addr % 4) * 8; + ((a & 0xFF) << shift) | (memory_read_value & !(0xFF << shift)) + } + Opcode::SH => { + if addr % 2 != 0 { + return Err(ExecutionError::InvalidMemoryAccess(Opcode::SH, addr)); + } + let shift = ((addr / 2) % 2) * 16; + ((a & 0xFFFF) << shift) | (memory_read_value & !(0xFFFF << shift)) + } + Opcode::SW => { + if addr % 4 != 0 { + return Err(ExecutionError::InvalidMemoryAccess(Opcode::SW, addr)); + } + a + } + _ => unreachable!(), + }; + self.mw_cpu(align(addr), memory_store_value, MemoryAccessPosition::Memory); + Ok((a, b, c)) + } + + fn execute_branch( + &mut self, + instruction: &Instruction, + mut next_pc: u32, + ) -> (u32, u32, u32, u32) { + let (a, b, c) = self.branch_rr(instruction); + let branch = match instruction.opcode { + Opcode::BEQ => a == b, + Opcode::BNE => a != b, + Opcode::BLT => (a as i32) < (b as i32), + Opcode::BGE => (a as i32) >= (b as i32), + Opcode::BLTU => a < b, + Opcode::BGEU => a >= b, + _ => { + unreachable!() + } + }; + if branch { + next_pc = self.state.pc.wrapping_add(c); + } + (a, b, c, next_pc) + } + /// Executes one cycle of the program, returning whether the program has finished. #[inline] #[allow(clippy::too_many_lines)] @@ -1403,6 +1343,7 @@ impl<'a> Executor<'a> { std::mem::replace(&mut self.record, ExecutionRecord::new(self.program.clone())); let public_values = removed_record.public_values; self.record.public_values = public_values; + self.record.nonce_lookup = vec![0; self.opts.shard_size * 32]; self.records.push(removed_record); } @@ -1489,6 +1430,8 @@ impl<'a> Executor<'a> { } fn initialize(&mut self) { + self.record.nonce_lookup = vec![0; self.opts.shard_size * 32]; + self.state.clk = 0; tracing::debug!("loading memory image"); @@ -1524,6 +1467,11 @@ impl<'a> Executor<'a> { /// Executes up to `self.shard_batch_size` cycles of the program, returning whether the program /// has finished. pub fn execute(&mut self) -> Result { + // Initialize the nonce lookup table if it's uninitialized. + if self.record.nonce_lookup.len() <= 2 { + self.record.nonce_lookup = vec![0; self.opts.shard_size * 32]; + } + // Get the program. let program = self.program.clone(); diff --git a/crates/core/executor/src/instruction.rs b/crates/core/executor/src/instruction.rs index bc1df27ba..10dfa5476 100644 --- a/crates/core/executor/src/instruction.rs +++ b/crates/core/executor/src/instruction.rs @@ -15,7 +15,7 @@ pub struct Instruction { /// The operation to execute. pub opcode: Opcode, /// The first operand. - pub op_a: u32, + pub op_a: u8, /// The second operand. pub op_b: u32, /// The third operand. @@ -31,7 +31,7 @@ impl Instruction { #[must_use] pub const fn new( opcode: Opcode, - op_a: u32, + op_a: u8, op_b: u32, op_c: u32, imm_b: bool, diff --git a/crates/core/executor/src/memory.rs b/crates/core/executor/src/memory.rs index 6e375753d..a036bbf5c 100644 --- a/crates/core/executor/src/memory.rs +++ b/crates/core/executor/src/memory.rs @@ -11,10 +11,10 @@ impl Default for Page { } } -const LOG_PAGE_LEN: usize = 15; +const LOG_PAGE_LEN: usize = 14; const PAGE_LEN: usize = 1 << LOG_PAGE_LEN; const MAX_PAGE_COUNT: usize = ((1 << 31) - (1 << 27)) / 4 / PAGE_LEN + 1; -const NO_PAGE: usize = usize::MAX; +const NO_PAGE: u16 = u16::MAX; const PAGE_MASK: usize = PAGE_LEN - 1; #[derive(Debug, Clone, Serialize, Deserialize)] @@ -41,7 +41,7 @@ impl Default for NewPage { pub struct PagedMemory { /// The internal page table. pub page_table: Vec>, - pub index: Vec, + pub index: Vec, } impl PagedMemory { @@ -50,8 +50,7 @@ impl PagedMemory { /// The number of registers in the virtual machine. const NUM_REGISTERS: usize = 32; /// The offset subtracted from the main address space to make it contiguous. - const ADDR_COMPRESS_OFFSET: usize = - Self::NUM_REGISTERS - (Self::NUM_REGISTERS >> Self::NUM_IGNORED_LOWER_BITS); + const ADDR_COMPRESS_OFFSET: usize = Self::NUM_REGISTERS; /// Create a `PagedMemory` with capacity `MAX_PAGE_COUNT`. pub fn new_preallocated() -> Self { @@ -65,7 +64,7 @@ impl PagedMemory { if index == NO_PAGE { None } else { - self.page_table[index].0[lower].as_ref() + self.page_table[index as usize].0[lower].as_ref() } } @@ -76,7 +75,7 @@ impl PagedMemory { if index == NO_PAGE { None } else { - self.page_table[index].0[lower].as_mut() + self.page_table[index as usize].0[lower].as_mut() } } @@ -85,11 +84,11 @@ impl PagedMemory { let (upper, lower) = Self::indices(addr); let mut index = self.index[upper]; if index == NO_PAGE { - index = self.page_table.len(); + index = self.page_table.len() as u16; self.index[upper] = index; self.page_table.push(NewPage::new()); } - self.page_table[index].0[lower].replace(value) + self.page_table[index as usize].0[lower].replace(value) } /// Remove the value at the given address if it exists, returning it. @@ -99,7 +98,7 @@ impl PagedMemory { if index == NO_PAGE { None } else { - self.page_table[index].0[lower].take() + self.page_table[index as usize].0[lower].take() } } @@ -109,11 +108,11 @@ impl PagedMemory { let index = self.index[upper]; if index == NO_PAGE { let index = self.page_table.len(); - self.index[upper] = index; + self.index[upper] = index as u16; self.page_table.push(NewPage::new()); Entry::Vacant(VacantEntry { entry: &mut self.page_table[index].0[lower] }) } else { - let option = &mut self.page_table[index].0[lower]; + let option = &mut self.page_table[index as usize].0[lower]; match option { Some(_) => Entry::Occupied(OccupiedEntry { entry: option }), None => Entry::Vacant(VacantEntry { entry: option }), @@ -125,7 +124,7 @@ impl PagedMemory { pub fn keys(&self) -> impl Iterator + '_ { self.index.iter().enumerate().filter(|(_, &i)| i != NO_PAGE).flat_map(|(i, index)| { let upper = i << LOG_PAGE_LEN; - self.page_table[*index] + self.page_table[*index as usize] .0 .iter() .enumerate() @@ -275,7 +274,7 @@ impl IntoIterator for PagedMemory { move |(i, index)| { let upper = i << LOG_PAGE_LEN; let replacement = NewPage::new(); - std::mem::replace(&mut self.page_table[index], replacement) + std::mem::replace(&mut self.page_table[index as usize], replacement) .0 .into_iter() .enumerate() diff --git a/crates/core/executor/src/opcode.rs b/crates/core/executor/src/opcode.rs index 6d0589ca9..818b5b1f2 100644 --- a/crates/core/executor/src/opcode.rs +++ b/crates/core/executor/src/opcode.rs @@ -100,7 +100,7 @@ pub enum Opcode { /// rd ← rs1 % rs2 (unsigned), pc ← pc + 4 REMU = 37, /// Unimplemented instruction. - UNIMP = 39, + UNIMP = 38, } /// Byte Opcode. diff --git a/crates/core/executor/src/program.rs b/crates/core/executor/src/program.rs index 29743a4c8..09bb70cac 100644 --- a/crates/core/executor/src/program.rs +++ b/crates/core/executor/src/program.rs @@ -89,6 +89,13 @@ impl Program { }) .copied() } + + #[must_use] + /// Fetch the instruction at the given program counter. + pub fn fetch(&self, pc: u32) -> &Instruction { + let idx = ((pc - self.pc_base) / 4) as usize; + &self.instructions[idx] + } } impl MachineProgram for Program { diff --git a/crates/core/executor/src/record.rs b/crates/core/executor/src/record.rs index b6c23c45f..f9e89acb4 100644 --- a/crates/core/executor/src/record.rs +++ b/crates/core/executor/src/record.rs @@ -23,7 +23,7 @@ use crate::{ /// A record of the execution of a program. /// /// The trace of the execution is represented as a list of "events" that occur every cycle. -#[derive(Default, Clone, Debug, Serialize, Deserialize)] +#[derive(Clone, Debug, Serialize, Deserialize)] pub struct ExecutionRecord { /// The program. pub program: Arc, @@ -60,16 +60,63 @@ pub struct ExecutionRecord { /// The public values. pub public_values: PublicValues, /// The nonce lookup. - pub nonce_lookup: HashMap, + pub nonce_lookup: Vec, + /// The next nonce to use for a new lookup. + pub next_nonce: u64, /// The shape of the proof. pub shape: Option, } +impl Default for ExecutionRecord { + fn default() -> Self { + let mut res = Self { + program: Arc::default(), + cpu_events: Vec::default(), + add_events: Vec::default(), + mul_events: Vec::default(), + sub_events: Vec::default(), + bitwise_events: Vec::default(), + shift_left_events: Vec::default(), + shift_right_events: Vec::default(), + divrem_events: Vec::default(), + lt_events: Vec::default(), + byte_lookups: HashMap::default(), + precompile_events: PrecompileEvents::default(), + global_memory_initialize_events: Vec::default(), + global_memory_finalize_events: Vec::default(), + cpu_local_memory_access: Vec::default(), + syscall_events: Vec::default(), + public_values: PublicValues::default(), + nonce_lookup: Vec::default(), + next_nonce: 0, + shape: None, + }; + res.nonce_lookup.insert(0, 0); + res + } +} + impl ExecutionRecord { /// Create a new [`ExecutionRecord`]. #[must_use] pub fn new(program: Arc) -> Self { - Self { program, ..Default::default() } + let mut res = Self { program, ..Default::default() }; + res.nonce_lookup.insert(0, 0); + res + } + + /// Create a lookup id for an event. + pub fn create_lookup_id(&mut self) -> LookupId { + // let id = self.nonce_lookup.len() as u64; + let id = self.next_nonce; + self.next_nonce += 1; + // self.nonce_lookup.insert(id as usize, 0); + LookupId(id) + } + + /// Create 6 lookup ids for an ALU event. + pub fn create_lookup_ids(&mut self) -> [LookupId; 6] { + std::array::from_fn(|_| self.create_lookup_id()) } /// Add a mul event to the execution record. @@ -299,7 +346,7 @@ impl MachineRecord for ExecutionRecord { ); stats.insert("local_memory_access_events".to_string(), self.cpu_local_memory_access.len()); if !self.cpu_events.is_empty() { - let shard = self.cpu_events[0].shard; + let shard = self.public_values.shard; stats.insert( "byte_lookups".to_string(), self.byte_lookups.get(&shard).map_or(0, hashbrown::HashMap::len), @@ -337,35 +384,35 @@ impl MachineRecord for ExecutionRecord { fn register_nonces(&mut self, _opts: &Self::Config) { self.add_events.iter().enumerate().for_each(|(i, event)| { - self.nonce_lookup.insert(event.lookup_id, i as u32); + self.nonce_lookup[event.lookup_id.0 as usize] = i as u32; }); self.sub_events.iter().enumerate().for_each(|(i, event)| { - self.nonce_lookup.insert(event.lookup_id, (self.add_events.len() + i) as u32); + self.nonce_lookup[event.lookup_id.0 as usize] = (self.add_events.len() + i) as u32; }); self.mul_events.iter().enumerate().for_each(|(i, event)| { - self.nonce_lookup.insert(event.lookup_id, i as u32); + self.nonce_lookup[event.lookup_id.0 as usize] = i as u32; }); self.bitwise_events.iter().enumerate().for_each(|(i, event)| { - self.nonce_lookup.insert(event.lookup_id, i as u32); + self.nonce_lookup[event.lookup_id.0 as usize] = i as u32; }); self.shift_left_events.iter().enumerate().for_each(|(i, event)| { - self.nonce_lookup.insert(event.lookup_id, i as u32); + self.nonce_lookup[event.lookup_id.0 as usize] = i as u32; }); self.shift_right_events.iter().enumerate().for_each(|(i, event)| { - self.nonce_lookup.insert(event.lookup_id, i as u32); + self.nonce_lookup[event.lookup_id.0 as usize] = i as u32; }); self.divrem_events.iter().enumerate().for_each(|(i, event)| { - self.nonce_lookup.insert(event.lookup_id, i as u32); + self.nonce_lookup[event.lookup_id.0 as usize] = i as u32; }); self.lt_events.iter().enumerate().for_each(|(i, event)| { - self.nonce_lookup.insert(event.lookup_id, i as u32); + self.nonce_lookup[event.lookup_id.0 as usize] = i as u32; }); } diff --git a/crates/core/executor/src/register.rs b/crates/core/executor/src/register.rs index 176ef1c95..c24b75dec 100644 --- a/crates/core/executor/src/register.rs +++ b/crates/core/executor/src/register.rs @@ -70,14 +70,14 @@ pub enum Register { } impl Register { - /// Create a new register from a u32. + /// Create a new register from a u8. /// /// # Panics /// /// This function will panic if the register is invalid. #[inline] #[must_use] - pub fn from_u32(value: u32) -> Self { + pub fn from_u8(value: u8) -> Self { match value { 0 => Register::X0, 1 => Register::X1, diff --git a/crates/core/executor/src/syscalls/precompiles/sha256/extend.rs b/crates/core/executor/src/syscalls/precompiles/sha256/extend.rs index 6be45cd42..cc5e288fb 100644 --- a/crates/core/executor/src/syscalls/precompiles/sha256/extend.rs +++ b/crates/core/executor/src/syscalls/precompiles/sha256/extend.rs @@ -22,11 +22,11 @@ impl Syscall for Sha256ExtendSyscall { assert!(arg2 == 0, "arg2 must be 0"); let w_ptr_init = w_ptr; - let mut w_i_minus_15_reads = Vec::new(); - let mut w_i_minus_2_reads = Vec::new(); - let mut w_i_minus_16_reads = Vec::new(); - let mut w_i_minus_7_reads = Vec::new(); - let mut w_i_writes = Vec::new(); + let mut w_i_minus_15_reads = Vec::with_capacity(48); + let mut w_i_minus_2_reads = Vec::with_capacity(48); + let mut w_i_minus_16_reads = Vec::with_capacity(48); + let mut w_i_minus_7_reads = Vec::with_capacity(48); + let mut w_i_writes = Vec::with_capacity(48); for i in 16..64 { // Read w[i-15]. let (record, w_i_minus_15) = rt.mr(w_ptr + (i - 15) * 4); diff --git a/crates/core/machine/src/alu/add_sub/mod.rs b/crates/core/machine/src/alu/add_sub/mod.rs index bf6dabef4..d27682075 100644 --- a/crates/core/machine/src/alu/add_sub/mod.rs +++ b/crates/core/machine/src/alu/add_sub/mod.rs @@ -8,7 +8,7 @@ use itertools::Itertools; use p3_air::{Air, AirBuilder, BaseAir}; use p3_field::{AbstractField, PrimeField}; use p3_matrix::{dense::RowMajorMatrix, Matrix}; -use p3_maybe_rayon::prelude::{ParallelBridge, ParallelIterator, ParallelSlice}; +use p3_maybe_rayon::prelude::{ParallelBridge, ParallelIterator}; use sp1_core_executor::{ events::{AluEvent, ByteLookupEvent, ByteRecord}, ExecutionRecord, Opcode, Program, @@ -19,7 +19,10 @@ use sp1_stark::{ Word, }; -use crate::{operations::AddOperation, utils::pad_rows_fixed}; +use crate::{ + operations::AddOperation, + utils::{next_power_of_two, zeroed_f_vec}, +}; /// The number of main trace columns for `AddSubChip`. pub const NUM_ADD_SUB_COLS: usize = size_of::>(); @@ -79,46 +82,29 @@ impl MachineAir for AddSubChip { std::cmp::max((input.add_events.len() + input.sub_events.len()) / num_cpus::get(), 1); let merged_events = input.add_events.iter().chain(input.sub_events.iter()).collect::>(); - - let row_batches = merged_events - .par_chunks(chunk_size) - .map(|events| { - let rows = events - .iter() - .map(|event| { - let mut row = [F::zero(); NUM_ADD_SUB_COLS]; - let cols: &mut AddSubCols = row.as_mut_slice().borrow_mut(); - let mut blu = Vec::new(); - self.event_to_row(event, cols, &mut blu); - row - }) - .collect::>(); - rows - }) - .collect::>(); - - let mut rows: Vec<[F; NUM_ADD_SUB_COLS]> = vec![]; - for row_batch in row_batches { - rows.extend(row_batch); - } - - pad_rows_fixed( - &mut rows, - || [F::zero(); NUM_ADD_SUB_COLS], - input.fixed_log2_rows::(self), + let nb_rows = merged_events.len(); + let size_log2 = input.fixed_log2_rows::(self); + let padded_nb_rows = next_power_of_two(nb_rows, size_log2); + let mut values = zeroed_f_vec(padded_nb_rows * NUM_ADD_SUB_COLS); + + values.chunks_mut(chunk_size * NUM_ADD_SUB_COLS).enumerate().par_bridge().for_each( + |(i, rows)| { + rows.chunks_mut(NUM_ADD_SUB_COLS).enumerate().for_each(|(j, row)| { + let idx = i * chunk_size + j; + let cols: &mut AddSubCols = row.borrow_mut(); + + if idx < merged_events.len() { + let mut byte_lookup_events = Vec::new(); + let event = &merged_events[idx]; + self.event_to_row(event, cols, &mut byte_lookup_events); + } + cols.nonce = F::from_canonical_usize(idx); + }); + }, ); - // Convert the trace to a row major matrix. - let mut trace = - RowMajorMatrix::new(rows.into_iter().flatten().collect::>(), NUM_ADD_SUB_COLS); - - // Write the nonces to the trace. - for i in 0..trace.height() { - let cols: &mut AddSubCols = - trace.values[i * NUM_ADD_SUB_COLS..(i + 1) * NUM_ADD_SUB_COLS].borrow_mut(); - cols.nonce = F::from_canonical_usize(i); - } - trace + // Convert the trace to a row major matrix. + RowMajorMatrix::new(values, NUM_ADD_SUB_COLS) } fn generate_dependencies(&self, input: &Self::Record, output: &mut Self::Record) { diff --git a/crates/core/machine/src/alu/divrem/mod.rs b/crates/core/machine/src/alu/divrem/mod.rs index 9170b87b5..1d4d539fc 100644 --- a/crates/core/machine/src/alu/divrem/mod.rs +++ b/crates/core/machine/src/alu/divrem/mod.rs @@ -279,11 +279,19 @@ impl MachineAir for DivRemChip { // Set the `alu_event` flags. cols.abs_c_alu_event = cols.c_neg * cols.is_real; cols.abs_c_alu_event_nonce = F::from_canonical_u32( - input.nonce_lookup.get(&event.sub_lookups[4]).copied().unwrap_or_default(), + input + .nonce_lookup + .get(event.sub_lookups[4].0 as usize) + .copied() + .unwrap_or_default(), ); cols.abs_rem_alu_event = cols.rem_neg * cols.is_real; cols.abs_rem_alu_event_nonce = F::from_canonical_u32( - input.nonce_lookup.get(&event.sub_lookups[5]).copied().unwrap_or_default(), + input + .nonce_lookup + .get(event.sub_lookups[5].0 as usize) + .copied() + .unwrap_or_default(), ); // Insert the MSB lookup events. @@ -344,16 +352,24 @@ impl MachineAir for DivRemChip { // Insert the necessary multiplication & LT events. { cols.lower_nonce = F::from_canonical_u32( - input.nonce_lookup.get(&event.sub_lookups[0]).copied().unwrap_or_default(), + input + .nonce_lookup + .get(event.sub_lookups[0].0 as usize) + .copied() + .unwrap_or_default(), ); cols.upper_nonce = F::from_canonical_u32( - input.nonce_lookup.get(&event.sub_lookups[1]).copied().unwrap_or_default(), + input + .nonce_lookup + .get(event.sub_lookups[1].0 as usize) + .copied() + .unwrap_or_default(), ); if is_signed_operation(event.opcode) { cols.abs_nonce = F::from_canonical_u32( input .nonce_lookup - .get(&event.sub_lookups[2]) + .get(event.sub_lookups[2].0 as usize) .copied() .unwrap_or_default(), ); @@ -361,7 +377,7 @@ impl MachineAir for DivRemChip { cols.abs_nonce = F::from_canonical_u32( input .nonce_lookup - .get(&event.sub_lookups[3]) + .get(event.sub_lookups[3].0 as usize) .copied() .unwrap_or_default(), ); diff --git a/crates/core/machine/src/alu/lt/mod.rs b/crates/core/machine/src/alu/lt/mod.rs index 211cf5d91..876fdaaf8 100644 --- a/crates/core/machine/src/alu/lt/mod.rs +++ b/crates/core/machine/src/alu/lt/mod.rs @@ -19,7 +19,7 @@ use sp1_stark::{ Word, }; -use crate::utils::pad_rows_fixed; +use crate::utils::{next_power_of_two, zeroed_f_vec}; /// The number of main trace columns for `LtChip`. pub const NUM_LT_COLS: usize = size_of::>(); @@ -107,38 +107,31 @@ impl MachineAir for LtChip { _: &mut ExecutionRecord, ) -> RowMajorMatrix { // Generate the trace rows for each event. - let mut rows = input - .lt_events - .par_iter() - .map(|event| { - let mut row = [F::zero(); NUM_LT_COLS]; - let mut new_byte_lookup_events: Vec = Vec::new(); - let cols: &mut LtCols = row.as_mut_slice().borrow_mut(); - self.event_to_row(event, cols, &mut new_byte_lookup_events); - - row - }) - .collect::>(); - - // Pad the trace to a power of two depending on the proof shape in `input`. - pad_rows_fixed( - &mut rows, - || [F::zero(); NUM_LT_COLS], - input.fixed_log2_rows::(self), + let nb_rows = input.lt_events.len(); + let size_log2 = input.fixed_log2_rows::(self); + let padded_nb_rows = next_power_of_two(nb_rows, size_log2); + let mut values = zeroed_f_vec(padded_nb_rows * NUM_LT_COLS); + let chunk_size = std::cmp::max((nb_rows + 1) / num_cpus::get(), 1); + + values.chunks_mut(chunk_size * NUM_LT_COLS).enumerate().par_bridge().for_each( + |(i, rows)| { + rows.chunks_mut(NUM_LT_COLS).enumerate().for_each(|(j, row)| { + let idx = i * chunk_size + j; + let cols: &mut LtCols = row.borrow_mut(); + + if idx < nb_rows { + let mut byte_lookup_events = Vec::new(); + let event = &input.lt_events[idx]; + self.event_to_row(event, cols, &mut byte_lookup_events); + } + cols.nonce = F::from_canonical_usize(idx); + }); + }, ); // Convert the trace to a row major matrix. - let mut trace = - RowMajorMatrix::new(rows.into_iter().flatten().collect::>(), NUM_LT_COLS); - - // Write the nonces to the trace. - for i in 0..trace.height() { - let cols: &mut LtCols = - trace.values[i * NUM_LT_COLS..(i + 1) * NUM_LT_COLS].borrow_mut(); - cols.nonce = F::from_canonical_usize(i); - } - trace + RowMajorMatrix::new(values, NUM_LT_COLS) } fn generate_dependencies(&self, input: &Self::Record, output: &mut Self::Record) { diff --git a/crates/core/machine/src/alu/mul/mod.rs b/crates/core/machine/src/alu/mul/mod.rs index 0453cb5f8..6a1ce272f 100644 --- a/crates/core/machine/src/alu/mul/mod.rs +++ b/crates/core/machine/src/alu/mul/mod.rs @@ -35,19 +35,24 @@ use core::{ mem::size_of, }; +use hashbrown::HashMap; use p3_air::{Air, AirBuilder, BaseAir}; use p3_field::{AbstractField, PrimeField}; use p3_matrix::{dense::RowMajorMatrix, Matrix}; -use p3_maybe_rayon::prelude::{ParallelIterator, ParallelSlice}; +use p3_maybe_rayon::prelude::{ParallelBridge, ParallelIterator, ParallelSlice}; use sp1_core_executor::{ - events::{ByteLookupEvent, ByteRecord}, + events::{AluEvent, ByteLookupEvent, ByteRecord}, ByteOpcode, ExecutionRecord, Opcode, Program, }; use sp1_derive::AlignedBorrow; use sp1_primitives::consts::WORD_SIZE; -use sp1_stark::{air::MachineAir, MachineRecord, Word}; +use sp1_stark::{air::MachineAir, Word}; -use crate::{air::SP1CoreAirBuilder, alu::mul::utils::get_msb, utils::pad_rows_fixed}; +use crate::{ + air::SP1CoreAirBuilder, + alu::mul::utils::get_msb, + utils::{next_power_of_two, zeroed_f_vec}, +}; /// The number of main trace columns for `MulChip`. pub const NUM_MUL_COLS: usize = size_of::>(); @@ -131,148 +136,54 @@ impl MachineAir for MulChip { fn generate_trace( &self, input: &ExecutionRecord, - output: &mut ExecutionRecord, + _: &mut ExecutionRecord, ) -> RowMajorMatrix { - let mul_events = input.mul_events.clone(); - // Compute the chunk size based on the number of events and the number of CPUs. - let chunk_size = std::cmp::max(mul_events.len() / num_cpus::get(), 1); + // Generate the trace rows for each event. + let nb_rows = input.mul_events.len(); + let size_log2 = input.fixed_log2_rows::(self); + let padded_nb_rows = next_power_of_two(nb_rows, size_log2); + let mut values = zeroed_f_vec(padded_nb_rows * NUM_MUL_COLS); + let chunk_size = std::cmp::max((nb_rows + 1) / num_cpus::get(), 1); + + values.chunks_mut(chunk_size * NUM_MUL_COLS).enumerate().par_bridge().for_each( + |(i, rows)| { + rows.chunks_mut(NUM_MUL_COLS).enumerate().for_each(|(j, row)| { + let idx = i * chunk_size + j; + let cols: &mut MulCols = row.borrow_mut(); + + if idx < nb_rows { + let mut byte_lookup_events = Vec::new(); + let event = &input.mul_events[idx]; + self.event_to_row(event, cols, &mut byte_lookup_events); + } + cols.nonce = F::from_canonical_usize(idx); + }); + }, + ); - // Generate the trace rows & corresponding records for each chunk of events in parallel. - let rows_and_records = mul_events + // Convert the trace to a row major matrix. + + RowMajorMatrix::new(values, NUM_MUL_COLS) + } + + fn generate_dependencies(&self, input: &Self::Record, output: &mut Self::Record) { + let chunk_size = std::cmp::max(input.mul_events.len() / num_cpus::get(), 1); + + let blu_batches = input + .mul_events .par_chunks(chunk_size) .map(|events| { - let mut record = ExecutionRecord::default(); - let rows = events - .iter() - .map(|event| { - // Ensure that the opcode is MUL, MULHU, MULH, or MULHSU. - assert!( - event.opcode == Opcode::MUL - || event.opcode == Opcode::MULHU - || event.opcode == Opcode::MULH - || event.opcode == Opcode::MULHSU - ); - let mut row = [F::zero(); NUM_MUL_COLS]; - let cols: &mut MulCols = row.as_mut_slice().borrow_mut(); - - let a_word = event.a.to_le_bytes(); - let b_word = event.b.to_le_bytes(); - let c_word = event.c.to_le_bytes(); - - let mut b = b_word.to_vec(); - let mut c = c_word.to_vec(); - - // Handle b and c's signs. - { - let b_msb = get_msb(b_word); - cols.b_msb = F::from_canonical_u8(b_msb); - let c_msb = get_msb(c_word); - cols.c_msb = F::from_canonical_u8(c_msb); - - // If b is signed and it is negative, sign extend b. - if (event.opcode == Opcode::MULH || event.opcode == Opcode::MULHSU) - && b_msb == 1 - { - cols.b_sign_extend = F::one(); - b.resize(PRODUCT_SIZE, BYTE_MASK); - } - - // If c is signed and it is negative, sign extend c. - if event.opcode == Opcode::MULH && c_msb == 1 { - cols.c_sign_extend = F::one(); - c.resize(PRODUCT_SIZE, BYTE_MASK); - } - - // Insert the MSB lookup events. - { - let words = [b_word, c_word]; - let mut blu_events: Vec = vec![]; - for word in words.iter() { - let most_significant_byte = word[WORD_SIZE - 1]; - blu_events.push(ByteLookupEvent { - shard: event.shard, - opcode: ByteOpcode::MSB, - a1: get_msb(*word) as u16, - a2: 0, - b: most_significant_byte, - c: 0, - }); - } - record.add_byte_lookup_events(blu_events); - } - } - - let mut product = [0u32; PRODUCT_SIZE]; - for i in 0..b.len() { - for j in 0..c.len() { - if i + j < PRODUCT_SIZE { - product[i + j] += (b[i] as u32) * (c[j] as u32); - } - } - } - - // Calculate the correct product using the `product` array. We store the - // correct carry value for verification. - let base = (1 << BYTE_SIZE) as u32; - let mut carry = [0u32; PRODUCT_SIZE]; - for i in 0..PRODUCT_SIZE { - carry[i] = product[i] / base; - product[i] %= base; - if i + 1 < PRODUCT_SIZE { - product[i + 1] += carry[i]; - } - cols.carry[i] = F::from_canonical_u32(carry[i]); - } - - cols.product = product.map(F::from_canonical_u32); - cols.a = Word(a_word.map(F::from_canonical_u8)); - cols.b = Word(b_word.map(F::from_canonical_u8)); - cols.c = Word(c_word.map(F::from_canonical_u8)); - cols.is_real = F::one(); - cols.is_mul = F::from_bool(event.opcode == Opcode::MUL); - cols.is_mulh = F::from_bool(event.opcode == Opcode::MULH); - cols.is_mulhu = F::from_bool(event.opcode == Opcode::MULHU); - cols.is_mulhsu = F::from_bool(event.opcode == Opcode::MULHSU); - cols.shard = F::from_canonical_u32(event.shard); - - // Range check. - { - record.add_u16_range_checks(event.shard, &carry.map(|x| x as u16)); - record.add_u8_range_checks(event.shard, &product.map(|x| x as u8)); - } - row - }) - .collect::>(); - (rows, record) + let mut blu: HashMap> = HashMap::new(); + events.iter().for_each(|event| { + let mut row = [F::zero(); NUM_MUL_COLS]; + let cols: &mut MulCols = row.as_mut_slice().borrow_mut(); + self.event_to_row(event, cols, &mut blu); + }); + blu }) .collect::>(); - // Generate the trace rows for each event. - let mut rows: Vec<[F; NUM_MUL_COLS]> = vec![]; - for mut row_and_record in rows_and_records { - rows.extend(row_and_record.0); - output.append(&mut row_and_record.1); - } - - // Pad the trace to a power of two depending on the proof shape in `input`. - pad_rows_fixed( - &mut rows, - || [F::zero(); NUM_MUL_COLS], - input.fixed_log2_rows::(self), - ); - - // Convert the trace to a row major matrix. - let mut trace = - RowMajorMatrix::new(rows.into_iter().flatten().collect::>(), NUM_MUL_COLS); - - // Write the nonces to the trace. - for i in 0..trace.height() { - let cols: &mut MulCols = - trace.values[i * NUM_MUL_COLS..(i + 1) * NUM_MUL_COLS].borrow_mut(); - cols.nonce = F::from_canonical_usize(i); - } - - trace + output.add_sharded_byte_lookup_events(blu_batches.iter().collect::>()); } fn included(&self, shard: &Self::Record) -> bool { @@ -284,6 +195,100 @@ impl MachineAir for MulChip { } } +impl MulChip { + /// Create a row from an event. + fn event_to_row( + &self, + event: &AluEvent, + cols: &mut MulCols, + blu: &mut impl ByteRecord, + ) { + let a_word = event.a.to_le_bytes(); + let b_word = event.b.to_le_bytes(); + let c_word = event.c.to_le_bytes(); + + let mut b = b_word.to_vec(); + let mut c = c_word.to_vec(); + + // Handle b and c's signs. + { + let b_msb = get_msb(b_word); + cols.b_msb = F::from_canonical_u8(b_msb); + let c_msb = get_msb(c_word); + cols.c_msb = F::from_canonical_u8(c_msb); + + // If b is signed and it is negative, sign extend b. + if (event.opcode == Opcode::MULH || event.opcode == Opcode::MULHSU) && b_msb == 1 { + cols.b_sign_extend = F::one(); + b.resize(PRODUCT_SIZE, BYTE_MASK); + } + + // If c is signed and it is negative, sign extend c. + if event.opcode == Opcode::MULH && c_msb == 1 { + cols.c_sign_extend = F::one(); + c.resize(PRODUCT_SIZE, BYTE_MASK); + } + + // Insert the MSB lookup events. + { + let words = [b_word, c_word]; + let mut blu_events: Vec = vec![]; + for word in words.iter() { + let most_significant_byte = word[WORD_SIZE - 1]; + blu_events.push(ByteLookupEvent { + shard: event.shard, + opcode: ByteOpcode::MSB, + a1: get_msb(*word) as u16, + a2: 0, + b: most_significant_byte, + c: 0, + }); + } + blu.add_byte_lookup_events(blu_events); + } + } + + let mut product = [0u32; PRODUCT_SIZE]; + for i in 0..b.len() { + for j in 0..c.len() { + if i + j < PRODUCT_SIZE { + product[i + j] += (b[i] as u32) * (c[j] as u32); + } + } + } + + // Calculate the correct product using the `product` array. We store the + // correct carry value for verification. + let base = (1 << BYTE_SIZE) as u32; + let mut carry = [0u32; PRODUCT_SIZE]; + for i in 0..PRODUCT_SIZE { + carry[i] = product[i] / base; + product[i] %= base; + if i + 1 < PRODUCT_SIZE { + product[i + 1] += carry[i]; + } + cols.carry[i] = F::from_canonical_u32(carry[i]); + } + + cols.product = product.map(F::from_canonical_u32); + cols.a = Word(a_word.map(F::from_canonical_u8)); + cols.b = Word(b_word.map(F::from_canonical_u8)); + cols.c = Word(c_word.map(F::from_canonical_u8)); + cols.is_real = F::one(); + cols.is_mul = F::from_bool(event.opcode == Opcode::MUL); + cols.is_mulh = F::from_bool(event.opcode == Opcode::MULH); + cols.is_mulhu = F::from_bool(event.opcode == Opcode::MULHU); + cols.is_mulhsu = F::from_bool(event.opcode == Opcode::MULHSU); + cols.shard = F::from_canonical_u32(event.shard); + + // Range check. + { + blu.add_u16_range_checks(event.shard, &carry.map(|x| x as u16)); + blu.add_u8_range_checks(event.shard, &product.map(|x| x as u8)); + } + } +} + impl BaseAir for MulChip { fn width(&self) -> usize { NUM_MUL_COLS diff --git a/crates/core/machine/src/alu/sr/mod.rs b/crates/core/machine/src/alu/sr/mod.rs index 9c19b4491..b26c94994 100644 --- a/crates/core/machine/src/alu/sr/mod.rs +++ b/crates/core/machine/src/alu/sr/mod.rs @@ -52,7 +52,7 @@ use itertools::Itertools; use p3_air::{Air, AirBuilder, BaseAir}; use p3_field::{AbstractField, PrimeField}; use p3_matrix::{dense::RowMajorMatrix, Matrix}; -use p3_maybe_rayon::prelude::{ParallelIterator, ParallelSlice}; +use p3_maybe_rayon::prelude::{ParallelBridge, ParallelIterator, ParallelSlice}; use sp1_core_executor::{ events::{AluEvent, ByteLookupEvent, ByteRecord}, ByteOpcode, ExecutionRecord, Opcode, Program, @@ -65,7 +65,7 @@ use crate::{ air::SP1CoreAirBuilder, alu::sr::utils::{nb_bits_to_shift, nb_bytes_to_shift}, bytes::utils::shr_carry, - utils::pad_rows_fixed, + utils::{next_power_of_two, zeroed_f_vec}, }; /// The number of main trace columns for `ShiftRightChip`. @@ -149,54 +149,33 @@ impl MachineAir for ShiftRightChip { _: &mut ExecutionRecord, ) -> RowMajorMatrix { // Generate the trace rows for each event. - let mut rows: Vec<[F; NUM_SHIFT_RIGHT_COLS]> = Vec::new(); - let sr_events = input.shift_right_events.clone(); - for event in sr_events.iter() { - assert!(event.opcode == Opcode::SRL || event.opcode == Opcode::SRA); - let mut row = [F::zero(); NUM_SHIFT_RIGHT_COLS]; - let cols: &mut ShiftRightCols = row.as_mut_slice().borrow_mut(); - let mut blu = Vec::new(); - self.event_to_row(event, cols, &mut blu); - rows.push(row); - } - - // Pad the trace to a power of two depending on the proof shape in `input`. - pad_rows_fixed( - &mut rows, - || [F::zero(); NUM_SHIFT_RIGHT_COLS], - input.fixed_log2_rows::(self), + let nb_rows = input.shift_right_events.len(); + let size_log2 = input.fixed_log2_rows::(self); + let padded_nb_rows = next_power_of_two(nb_rows, size_log2); + let mut values = zeroed_f_vec(padded_nb_rows * NUM_SHIFT_RIGHT_COLS); + let chunk_size = std::cmp::max((nb_rows + 1) / num_cpus::get(), 1); + + values.chunks_mut(chunk_size * NUM_SHIFT_RIGHT_COLS).enumerate().par_bridge().for_each( + |(i, rows)| { + rows.chunks_mut(NUM_SHIFT_RIGHT_COLS).enumerate().for_each(|(j, row)| { + let idx = i * chunk_size + j; + let cols: &mut ShiftRightCols = row.borrow_mut(); + + if idx < nb_rows { + let mut byte_lookup_events = Vec::new(); + let event = &input.shift_right_events[idx]; + self.event_to_row(event, cols, &mut byte_lookup_events); + } else { + cols.shift_by_n_bits[0] = F::one(); + cols.shift_by_n_bytes[0] = F::one(); + } + cols.nonce = F::from_canonical_usize(idx); + }); + }, ); // Convert the trace to a row major matrix. - let mut trace = RowMajorMatrix::new( - rows.into_iter().flatten().collect::>(), - NUM_SHIFT_RIGHT_COLS, - ); - - // Create the template for the padded rows. These are fake rows that don't fail on some - // sanity checks. - let padded_row_template = { - let mut row = [F::zero(); NUM_SHIFT_RIGHT_COLS]; - let cols: &mut ShiftRightCols = row.as_mut_slice().borrow_mut(); - // Shift 0 by 0 bits and 0 bytes. - // cols.is_srl = F::one(); - cols.shift_by_n_bits[0] = F::one(); - cols.shift_by_n_bytes[0] = F::one(); - row - }; - debug_assert!(padded_row_template.len() == NUM_SHIFT_RIGHT_COLS); - for i in input.shift_right_events.len() * NUM_SHIFT_RIGHT_COLS..trace.values.len() { - trace.values[i] = padded_row_template[i % NUM_SHIFT_RIGHT_COLS]; - } - - // Write the nonces to the trace. - for i in 0..trace.height() { - let cols: &mut ShiftRightCols = - trace.values[i * NUM_SHIFT_RIGHT_COLS..(i + 1) * NUM_SHIFT_RIGHT_COLS].borrow_mut(); - cols.nonce = F::from_canonical_usize(i); - } - - trace + RowMajorMatrix::new(values, NUM_SHIFT_RIGHT_COLS) } fn generate_dependencies(&self, input: &Self::Record, output: &mut Self::Record) { diff --git a/crates/core/machine/src/cpu/columns/instruction.rs b/crates/core/machine/src/cpu/columns/instruction.rs index a16de4fb0..27dd1f6a9 100644 --- a/crates/core/machine/src/cpu/columns/instruction.rs +++ b/crates/core/machine/src/cpu/columns/instruction.rs @@ -27,13 +27,13 @@ pub struct InstructionCols { } impl InstructionCols { - pub fn populate(&mut self, instruction: Instruction) { + pub fn populate(&mut self, instruction: &Instruction) { self.opcode = instruction.opcode.as_field::(); - self.op_a = instruction.op_a.into(); + self.op_a = (instruction.op_a as u32).into(); self.op_b = instruction.op_b.into(); self.op_c = instruction.op_c.into(); - self.op_a_0 = F::from_bool(instruction.op_a == Register::X0 as u32); + self.op_a_0 = F::from_bool(instruction.op_a == Register::X0 as u8); } } diff --git a/crates/core/machine/src/cpu/columns/opcode.rs b/crates/core/machine/src/cpu/columns/opcode.rs index 9b4344d03..4de8f11ba 100644 --- a/crates/core/machine/src/cpu/columns/opcode.rs +++ b/crates/core/machine/src/cpu/columns/opcode.rs @@ -63,7 +63,7 @@ pub struct OpcodeSelectorCols { } impl OpcodeSelectorCols { - pub fn populate(&mut self, instruction: Instruction) { + pub fn populate(&mut self, instruction: &Instruction) { self.imm_b = F::from_bool(instruction.imm_b); self.imm_c = F::from_bool(instruction.imm_c); diff --git a/crates/core/machine/src/cpu/trace.rs b/crates/core/machine/src/cpu/trace.rs index 6358724bc..5a4320260 100644 --- a/crates/core/machine/src/cpu/trace.rs +++ b/crates/core/machine/src/cpu/trace.rs @@ -1,10 +1,10 @@ use hashbrown::HashMap; use itertools::Itertools; use sp1_core_executor::{ - events::{ByteLookupEvent, ByteRecord, CpuEvent, LookupId, MemoryRecordEnum}, + events::{ByteLookupEvent, ByteRecord, CpuEvent, MemoryRecordEnum}, syscalls::SyscallCode, ByteOpcode::{self, U16Range}, - CoreShape, ExecutionRecord, Opcode, Program, + ExecutionRecord, Instruction, Opcode, Program, Register::X0, }; use sp1_primitives::consts::WORD_SIZE; @@ -13,15 +13,10 @@ use std::{array, borrow::BorrowMut}; use p3_field::{PrimeField, PrimeField32}; use p3_matrix::dense::RowMajorMatrix; -use p3_maybe_rayon::prelude::{ - IntoParallelRefMutIterator, ParallelBridge, ParallelIterator, ParallelSlice, -}; +use p3_maybe_rayon::prelude::{ParallelBridge, ParallelIterator, ParallelSlice}; use tracing::instrument; -use super::{ - columns::{CPU_COL_MAP, NUM_CPU_COLS}, - CpuChip, -}; +use super::{columns::NUM_CPU_COLS, CpuChip}; use crate::{cpu::columns::CpuCols, memory::MemoryCols, utils::zeroed_f_vec}; impl MachineAir for CpuChip { @@ -55,24 +50,29 @@ impl MachineAir for CpuChip { rows.chunks_mut(NUM_CPU_COLS).enumerate().for_each(|(j, row)| { let idx = i * chunk_size + j; let cols: &mut CpuCols = row.borrow_mut(); - let mut byte_lookup_events = Vec::new(); - self.event_to_row( - &input.cpu_events[idx], - &input.nonce_lookup, - cols, - &mut byte_lookup_events, - ); + + if idx >= input.cpu_events.len() { + cols.selectors.imm_b = F::one(); + cols.selectors.imm_c = F::one(); + } else { + let mut byte_lookup_events = Vec::new(); + let event = &input.cpu_events[idx]; + let instruction = &input.program.fetch(event.pc); + self.event_to_row( + event, + &input.nonce_lookup, + cols, + &mut byte_lookup_events, + shard, + instruction, + ); + } }); }, ); // Convert the trace to a row major matrix. - let mut trace = RowMajorMatrix::new(values, NUM_CPU_COLS); - - // Pad the trace to a power of two. - Self::pad_to_power_of_two::(self, &input.shape, &mut trace.values); - - trace + RowMajorMatrix::new(values, NUM_CPU_COLS) } #[instrument(name = "generate cpu dependencies", level = "debug", skip_all)] @@ -90,7 +90,15 @@ impl MachineAir for CpuChip { ops.iter().for_each(|op| { let mut row = [F::zero(); NUM_CPU_COLS]; let cols: &mut CpuCols = row.as_mut_slice().borrow_mut(); - self.event_to_row::(op, &HashMap::new(), cols, &mut blu); + let instruction = &input.program.fetch(op.pc); + self.event_to_row::( + op, + &input.nonce_lookup, + cols, + &mut blu, + shard, + instruction, + ); }); blu }) @@ -113,23 +121,25 @@ impl CpuChip { fn event_to_row( &self, event: &CpuEvent, - nonce_lookup: &HashMap, + nonce_lookup: &[u32], cols: &mut CpuCols, blu_events: &mut impl ByteRecord, + shard: u32, + instruction: &Instruction, ) { // Populate shard and clk columns. - self.populate_shard_clk(cols, event, blu_events); + self.populate_shard_clk(cols, event, blu_events, shard); // Populate the nonce. cols.nonce = F::from_canonical_u32( - nonce_lookup.get(&event.alu_lookup_id).copied().unwrap_or_default(), + nonce_lookup.get(event.alu_lookup_id.0 as usize).copied().unwrap_or_default(), ); // Populate basic fields. cols.pc = F::from_canonical_u32(event.pc); cols.next_pc = F::from_canonical_u32(event.next_pc); - cols.instruction.populate(event.instruction); - cols.selectors.populate(event.instruction); + cols.instruction.populate(instruction); + cols.selectors.populate(instruction); *cols.op_a_access.value_mut() = event.a.into(); *cols.op_b_access.value_mut() = event.b.into(); *cols.op_c_access.value_mut() = event.c.into(); @@ -155,7 +165,7 @@ impl CpuChip { .map(|x| x.as_canonical_u32()) .collect::>(); blu_events.add_byte_lookup_event(ByteLookupEvent { - shard: event.shard, + shard, opcode: ByteOpcode::U8Range, a1: 0, a2: 0, @@ -163,7 +173,7 @@ impl CpuChip { c: a_bytes[1] as u8, }); blu_events.add_byte_lookup_event(ByteLookupEvent { - shard: event.shard, + shard, opcode: ByteOpcode::U8Range, a1: 0, a2: 0, @@ -172,23 +182,20 @@ impl CpuChip { }); // Populate memory accesses for reading from memory. - assert_eq!(event.memory_record.is_some(), event.memory.is_some()); let memory_columns = cols.opcode_specific_columns.memory_mut(); if let Some(record) = event.memory_record { memory_columns.memory_access.populate(record, blu_events) } // Populate memory, branch, jump, and auipc specific fields. - self.populate_memory(cols, event, blu_events, nonce_lookup); - self.populate_branch(cols, event, nonce_lookup); - self.populate_jump(cols, event, nonce_lookup); - self.populate_auipc(cols, event, nonce_lookup); + self.populate_memory(cols, event, blu_events, nonce_lookup, shard, instruction); + self.populate_branch(cols, event, nonce_lookup, instruction); + self.populate_jump(cols, event, nonce_lookup, instruction); + self.populate_auipc(cols, event, nonce_lookup, instruction); let is_halt = self.populate_ecall(cols, event, nonce_lookup); cols.is_sequential_instr = F::from_bool( - !event.instruction.is_branch_instruction() - && !event.instruction.is_jump_instruction() - && !is_halt, + !instruction.is_branch_instruction() && !instruction.is_jump_instruction() && !is_halt, ); // Assert that the instruction is not a no-op. @@ -201,8 +208,9 @@ impl CpuChip { cols: &mut CpuCols, event: &CpuEvent, blu_events: &mut impl ByteRecord, + shard: u32, ) { - cols.shard = F::from_canonical_u32(event.shard); + cols.shard = F::from_canonical_u32(shard); cols.clk = F::from_canonical_u32(event.clk); let clk_16bit_limb = (event.clk & 0xffff) as u16; @@ -211,15 +219,15 @@ impl CpuChip { cols.clk_8bit_limb = F::from_canonical_u8(clk_8bit_limb); blu_events.add_byte_lookup_event(ByteLookupEvent::new( - event.shard, + shard, U16Range, - event.shard as u16, + shard as u16, 0, 0, 0, )); blu_events.add_byte_lookup_event(ByteLookupEvent::new( - event.shard, + shard, U16Range, clk_16bit_limb, 0, @@ -227,7 +235,7 @@ impl CpuChip { 0, )); blu_events.add_byte_lookup_event(ByteLookupEvent::new( - event.shard, + shard, ByteOpcode::U8Range, 0, 0, @@ -242,10 +250,12 @@ impl CpuChip { cols: &mut CpuCols, event: &CpuEvent, blu_events: &mut impl ByteRecord, - nonce_lookup: &HashMap, + nonce_lookup: &[u32], + shard: u32, + instruction: &Instruction, ) { if !matches!( - event.instruction.opcode, + instruction.opcode, Opcode::LB | Opcode::LH | Opcode::LW @@ -272,7 +282,7 @@ impl CpuChip { let bits: [bool; 8] = array::from_fn(|i| aligned_addr_ls_byte & (1 << i) != 0); memory_columns.aa_least_sig_byte_decomp = array::from_fn(|i| F::from_bool(bits[i + 2])); memory_columns.addr_word_nonce = F::from_canonical_u32( - nonce_lookup.get(&event.memory_add_lookup_id).copied().unwrap_or_default(), + nonce_lookup.get(event.memory_add_lookup_id.0 as usize).copied().unwrap_or_default(), ); // Populate memory offsets. @@ -285,10 +295,10 @@ impl CpuChip { // If it is a load instruction, set the unsigned_mem_val column. let mem_value = event.memory_record.unwrap().value(); if matches!( - event.instruction.opcode, + instruction.opcode, Opcode::LB | Opcode::LBU | Opcode::LH | Opcode::LHU | Opcode::LW ) { - match event.instruction.opcode { + match instruction.opcode { Opcode::LB | Opcode::LBU => { cols.unsigned_mem_val = (mem_value.to_le_bytes()[addr_offset as usize] as u32).into(); @@ -308,8 +318,8 @@ impl CpuChip { } // For the signed load instructions, we need to check if the loaded value is negative. - if matches!(event.instruction.opcode, Opcode::LB | Opcode::LH) { - let most_sig_mem_value_byte = if matches!(event.instruction.opcode, Opcode::LB) { + if matches!(instruction.opcode, Opcode::LB | Opcode::LH) { + let most_sig_mem_value_byte = if matches!(instruction.opcode, Opcode::LB) { cols.unsigned_mem_val.to_u32().to_le_bytes()[0] } else { cols.unsigned_mem_val.to_u32().to_le_bytes()[1] @@ -320,20 +330,22 @@ impl CpuChip { F::from_canonical_u8(most_sig_mem_value_byte >> i & 0x01); } if memory_columns.most_sig_byte_decomp[7] == F::one() { - cols.mem_value_is_neg_not_x0 = - F::from_bool(event.instruction.op_a != (X0 as u32)); + cols.mem_value_is_neg_not_x0 = F::from_bool(instruction.op_a != (X0 as u8)); cols.unsigned_mem_val_nonce = F::from_canonical_u32( - nonce_lookup.get(&event.memory_sub_lookup_id).copied().unwrap_or_default(), + nonce_lookup + .get(event.memory_sub_lookup_id.0 as usize) + .copied() + .unwrap_or_default(), ); } } // Set the `mem_value_is_pos_not_x0` composite flag. cols.mem_value_is_pos_not_x0 = F::from_bool( - ((matches!(event.instruction.opcode, Opcode::LB | Opcode::LH) + ((matches!(instruction.opcode, Opcode::LB | Opcode::LH) && (memory_columns.most_sig_byte_decomp[7] == F::zero())) - || matches!(event.instruction.opcode, Opcode::LBU | Opcode::LHU | Opcode::LW)) - && event.instruction.op_a != (X0 as u32), + || matches!(instruction.opcode, Opcode::LBU | Opcode::LHU | Opcode::LW)) + && instruction.op_a != (X0 as u8), ); } @@ -341,7 +353,7 @@ impl CpuChip { let addr_bytes = memory_addr.to_le_bytes(); for byte_pair in addr_bytes.chunks_exact(2) { blu_events.add_byte_lookup_event(ByteLookupEvent { - shard: event.shard, + shard, opcode: ByteOpcode::U8Range, a1: 0, a2: 0, @@ -356,15 +368,15 @@ impl CpuChip { &self, cols: &mut CpuCols, event: &CpuEvent, - nonce_lookup: &HashMap, + nonce_lookup: &[u32], + instruction: &Instruction, ) { - if event.instruction.is_branch_instruction() { + if instruction.is_branch_instruction() { let branch_columns = cols.opcode_specific_columns.branch_mut(); let a_eq_b = event.a == event.b; - let use_signed_comparison = - matches!(event.instruction.opcode, Opcode::BLT | Opcode::BGE); + let use_signed_comparison = matches!(instruction.opcode, Opcode::BLT | Opcode::BGE); let a_lt_b = if use_signed_comparison { (event.a as i32) < (event.b as i32) @@ -378,18 +390,18 @@ impl CpuChip { }; branch_columns.a_lt_b_nonce = F::from_canonical_u32( - nonce_lookup.get(&event.branch_lt_lookup_id).copied().unwrap_or_default(), + nonce_lookup.get(event.branch_lt_lookup_id.0 as usize).copied().unwrap_or_default(), ); branch_columns.a_gt_b_nonce = F::from_canonical_u32( - nonce_lookup.get(&event.branch_gt_lookup_id).copied().unwrap_or_default(), + nonce_lookup.get(event.branch_gt_lookup_id.0 as usize).copied().unwrap_or_default(), ); branch_columns.a_eq_b = F::from_bool(a_eq_b); branch_columns.a_lt_b = F::from_bool(a_lt_b); branch_columns.a_gt_b = F::from_bool(a_gt_b); - let branching = match event.instruction.opcode { + let branching = match instruction.opcode { Opcode::BEQ => a_eq_b, Opcode::BNE => !a_eq_b, Opcode::BLT | Opcode::BLTU => a_lt_b, @@ -406,7 +418,10 @@ impl CpuChip { if branching { cols.branching = F::one(); branch_columns.next_pc_nonce = F::from_canonical_u32( - nonce_lookup.get(&event.branch_add_lookup_id).copied().unwrap_or_default(), + nonce_lookup + .get(event.branch_add_lookup_id.0 as usize) + .copied() + .unwrap_or_default(), ); } else { cols.not_branching = F::one(); @@ -419,12 +434,13 @@ impl CpuChip { &self, cols: &mut CpuCols, event: &CpuEvent, - nonce_lookup: &HashMap, + nonce_lookup: &[u32], + instruction: &Instruction, ) { - if event.instruction.is_jump_instruction() { + if instruction.is_jump_instruction() { let jump_columns = cols.opcode_specific_columns.jump_mut(); - match event.instruction.opcode { + match instruction.opcode { Opcode::JAL => { let next_pc = event.pc.wrapping_add(event.b); jump_columns.op_a_range_checker.populate(event.a); @@ -433,7 +449,10 @@ impl CpuChip { jump_columns.next_pc = Word::from(next_pc); jump_columns.next_pc_range_checker.populate(next_pc); jump_columns.jal_nonce = F::from_canonical_u32( - nonce_lookup.get(&event.jump_jal_lookup_id).copied().unwrap_or_default(), + nonce_lookup + .get(event.jump_jal_lookup_id.0 as usize) + .copied() + .unwrap_or_default(), ); } Opcode::JALR => { @@ -442,7 +461,10 @@ impl CpuChip { jump_columns.next_pc = Word::from(next_pc); jump_columns.next_pc_range_checker.populate(next_pc); jump_columns.jalr_nonce = F::from_canonical_u32( - nonce_lookup.get(&event.jump_jalr_lookup_id).copied().unwrap_or_default(), + nonce_lookup + .get(event.jump_jalr_lookup_id.0 as usize) + .copied() + .unwrap_or_default(), ); } _ => unreachable!(), @@ -455,15 +477,16 @@ impl CpuChip { &self, cols: &mut CpuCols, event: &CpuEvent, - nonce_lookup: &HashMap, + nonce_lookup: &[u32], + instruction: &Instruction, ) { - if matches!(event.instruction.opcode, Opcode::AUIPC) { + if matches!(instruction.opcode, Opcode::AUIPC) { let auipc_columns = cols.opcode_specific_columns.auipc_mut(); auipc_columns.pc = Word::from(event.pc); auipc_columns.pc_range_checker.populate(event.pc); auipc_columns.auipc_nonce = F::from_canonical_u32( - nonce_lookup.get(&event.auipc_lookup_id).copied().unwrap_or_default(), + nonce_lookup.get(event.auipc_lookup_id.0 as usize).copied().unwrap_or_default(), ); } } @@ -473,7 +496,7 @@ impl CpuChip { &self, cols: &mut CpuCols, event: &CpuEvent, - nonce_lookup: &HashMap, + nonce_lookup: &[u32], ) -> bool { let mut is_halt = false; @@ -526,9 +549,8 @@ impl CpuChip { } // Write the syscall nonce. - ecall_cols.syscall_nonce = F::from_canonical_u32( - nonce_lookup.get(&event.syscall_lookup_id).copied().unwrap_or_default(), - ); + ecall_cols.syscall_nonce = + F::from_canonical_u32(nonce_lookup[event.syscall_lookup_id.0 as usize]); is_halt = syscall_id == F::from_canonical_u32(SyscallCode::HALT.syscall_id()); @@ -550,29 +572,4 @@ impl CpuChip { is_halt } - - fn pad_to_power_of_two(&self, shape: &Option, values: &mut Vec) { - let n_real_rows = values.len() / NUM_CPU_COLS; - let padded_nb_rows = if let Some(shape) = shape { - 1 << shape.inner[&MachineAir::::name(self)] - } else if n_real_rows < 16 { - 16 - } else { - n_real_rows.next_power_of_two() - }; - values.resize(padded_nb_rows * NUM_CPU_COLS, F::zero()); - - // Interpret values as a slice of arrays of length `NUM_CPU_COLS` - let rows = unsafe { - core::slice::from_raw_parts_mut( - values.as_mut_ptr() as *mut [F; NUM_CPU_COLS], - values.len() / NUM_CPU_COLS, - ) - }; - - rows[n_real_rows..].par_iter_mut().for_each(|padded_row| { - padded_row[CPU_COL_MAP.selectors.imm_b] = F::one(); - padded_row[CPU_COL_MAP.selectors.imm_c] = F::one(); - }); - } } diff --git a/crates/core/machine/src/memory/local.rs b/crates/core/machine/src/memory/local.rs index bf109d028..8be437703 100644 --- a/crates/core/machine/src/memory/local.rs +++ b/crates/core/machine/src/memory/local.rs @@ -3,11 +3,11 @@ use std::{ mem::size_of, }; -use crate::utils::pad_rows_fixed; -use itertools::Itertools; +use crate::utils::{next_power_of_two, zeroed_f_vec}; use p3_air::{Air, BaseAir}; use p3_field::PrimeField32; use p3_matrix::{dense::RowMajorMatrix, Matrix}; +use p3_maybe_rayon::prelude::{ParallelBridge, ParallelIterator}; use sp1_core_executor::{ExecutionRecord, Program}; use sp1_derive::AlignedBorrow; use sp1_stark::{ @@ -86,39 +86,45 @@ impl MachineAir for MemoryLocalChip { input: &ExecutionRecord, _output: &mut ExecutionRecord, ) -> RowMajorMatrix { - let mut rows = Vec::<[F; NUM_MEMORY_LOCAL_INIT_COLS]>::new(); - - for local_mem_events in - &input.get_local_mem_events().chunks(NUM_LOCAL_MEMORY_ENTRIES_PER_ROW) - { - let mut row = [F::zero(); NUM_MEMORY_LOCAL_INIT_COLS]; - let cols: &mut MemoryLocalCols = row.as_mut_slice().borrow_mut(); - - for (cols, event) in cols.memory_local_entries.iter_mut().zip(local_mem_events) { - cols.addr = F::from_canonical_u32(event.addr); - cols.initial_shard = F::from_canonical_u32(event.initial_mem_access.shard); - cols.final_shard = F::from_canonical_u32(event.final_mem_access.shard); - cols.initial_clk = F::from_canonical_u32(event.initial_mem_access.timestamp); - cols.final_clk = F::from_canonical_u32(event.final_mem_access.timestamp); - cols.initial_value = event.initial_mem_access.value.into(); - cols.final_value = event.final_mem_access.value.into(); - cols.is_real = F::one(); - } - - rows.push(row); - } - - // Pad the trace to a power of two depending on the proof shape in `input`. - pad_rows_fixed( - &mut rows, - || [F::zero(); NUM_MEMORY_LOCAL_INIT_COLS], - input.fixed_log2_rows::(self), - ); - - RowMajorMatrix::new( - rows.into_iter().flatten().collect::>(), - NUM_MEMORY_LOCAL_INIT_COLS, - ) + // Generate the trace rows for each event. + let events = input.get_local_mem_events().collect::>(); + let nb_rows = (events.len() + 3) / 4; + let size_log2 = input.fixed_log2_rows::(self); + let padded_nb_rows = next_power_of_two(nb_rows, size_log2); + let mut values = zeroed_f_vec(padded_nb_rows * NUM_MEMORY_LOCAL_INIT_COLS); + let chunk_size = std::cmp::max((nb_rows + 1) / num_cpus::get(), 1); + + values + .chunks_mut(chunk_size * NUM_MEMORY_LOCAL_INIT_COLS) + .enumerate() + .par_bridge() + .for_each(|(i, rows)| { + rows.chunks_mut(NUM_MEMORY_LOCAL_INIT_COLS).enumerate().for_each(|(j, row)| { + let idx = (i * chunk_size + j) * NUM_LOCAL_MEMORY_ENTRIES_PER_ROW; + + let cols: &mut MemoryLocalCols = row.borrow_mut(); + for k in 0..NUM_LOCAL_MEMORY_ENTRIES_PER_ROW { + let cols = &mut cols.memory_local_entries[k]; + if idx + k < events.len() { + let event = &events[idx + k]; + cols.addr = F::from_canonical_u32(event.addr); + cols.initial_shard = + F::from_canonical_u32(event.initial_mem_access.shard); + cols.final_shard = F::from_canonical_u32(event.final_mem_access.shard); + cols.initial_clk = + F::from_canonical_u32(event.initial_mem_access.timestamp); + cols.final_clk = + F::from_canonical_u32(event.final_mem_access.timestamp); + cols.initial_value = event.initial_mem_access.value.into(); + cols.final_value = event.final_mem_access.value.into(); + cols.is_real = F::one(); + } + } + }); + }); + + // Convert the trace to a row major matrix. + RowMajorMatrix::new(values, NUM_MEMORY_LOCAL_INIT_COLS) } fn included(&self, shard: &Self::Record) -> bool { diff --git a/crates/core/machine/src/memory/program.rs b/crates/core/machine/src/memory/program.rs index 7b6866162..699e052c0 100644 --- a/crates/core/machine/src/memory/program.rs +++ b/crates/core/machine/src/memory/program.rs @@ -7,6 +7,7 @@ use p3_air::{Air, AirBuilder, AirBuilderWithPublicValues, BaseAir, PairBuilder}; use p3_field::{AbstractField, PrimeField}; use p3_matrix::{dense::RowMajorMatrix, Matrix}; +use p3_maybe_rayon::prelude::{ParallelBridge, ParallelIterator}; use sp1_core_executor::{ExecutionRecord, Program}; use sp1_derive::AlignedBorrow; use sp1_stark::{ @@ -17,7 +18,10 @@ use sp1_stark::{ InteractionKind, Word, }; -use crate::{operations::IsZeroOperation, utils::pad_rows_fixed}; +use crate::{ + operations::IsZeroOperation, + utils::{next_power_of_two, pad_rows_fixed, zeroed_f_vec}, +}; pub const NUM_MEMORY_PROGRAM_PREPROCESSED_COLS: usize = size_of::>(); @@ -71,35 +75,36 @@ impl MachineAir for MemoryProgramChip { } fn generate_preprocessed_trace(&self, program: &Self::Program) -> Option> { - let program_memory = &program.memory_image; - // Note that BTreeMap is guaranteed to be sorted by key. This makes the row order - // deterministic. - let mut rows = program_memory - .iter() - .sorted() - .map(|(&addr, &word)| { - let mut row = [F::zero(); NUM_MEMORY_PROGRAM_PREPROCESSED_COLS]; - let cols: &mut MemoryProgramPreprocessedCols = row.as_mut_slice().borrow_mut(); - cols.addr = F::from_canonical_u32(addr); - cols.value = Word::from(word); - cols.is_real = F::one(); - row - }) - .collect::>(); - - // Pad the trace to a power of two depending on the proof shape in `input`. - pad_rows_fixed( - &mut rows, - || [F::zero(); NUM_MEMORY_PROGRAM_PREPROCESSED_COLS], - program.fixed_log2_rows::(self), - ); + // Generate the trace rows for each event. + let nb_rows = program.memory_image.len(); + let size_log2 = program.fixed_log2_rows::(self); + let padded_nb_rows = next_power_of_two(nb_rows, size_log2); + let mut values = zeroed_f_vec(padded_nb_rows * NUM_MEMORY_PROGRAM_PREPROCESSED_COLS); + let chunk_size = std::cmp::max((nb_rows + 1) / num_cpus::get(), 1); + + let memory = program.memory_image.iter().collect::>(); + values + .chunks_mut(chunk_size * NUM_MEMORY_PROGRAM_PREPROCESSED_COLS) + .enumerate() + .par_bridge() + .for_each(|(i, rows)| { + rows.chunks_mut(NUM_MEMORY_PROGRAM_PREPROCESSED_COLS).enumerate().for_each( + |(j, row)| { + let idx = i * chunk_size + j; + + if idx < nb_rows { + let (addr, word) = memory[idx]; + let cols: &mut MemoryProgramPreprocessedCols = row.borrow_mut(); + cols.addr = F::from_canonical_u32(*addr); + cols.value = Word::from(*word); + cols.is_real = F::one(); + } + }, + ); + }); // Convert the trace to a row major matrix. - let trace = RowMajorMatrix::new( - rows.into_iter().flatten().collect::>(), - NUM_MEMORY_PROGRAM_PREPROCESSED_COLS, - ); - Some(trace) + Some(RowMajorMatrix::new(values, NUM_MEMORY_PROGRAM_PREPROCESSED_COLS)) } fn generate_dependencies(&self, _input: &ExecutionRecord, _output: &mut ExecutionRecord) { diff --git a/crates/core/machine/src/program/mod.rs b/crates/core/machine/src/program/mod.rs index 39dfb6a76..f6c1f3bc0 100644 --- a/crates/core/machine/src/program/mod.rs +++ b/crates/core/machine/src/program/mod.rs @@ -4,10 +4,14 @@ use core::{ }; use std::collections::HashMap; -use crate::{air::ProgramAirBuilder, utils::pad_rows_fixed}; +use crate::{ + air::ProgramAirBuilder, + utils::{next_power_of_two, pad_rows_fixed, zeroed_f_vec}, +}; use p3_air::{Air, BaseAir, PairBuilder}; use p3_field::PrimeField; use p3_matrix::{dense::RowMajorMatrix, Matrix}; +use p3_maybe_rayon::prelude::{ParallelBridge, ParallelIterator}; use sp1_core_executor::{ExecutionRecord, Program}; use sp1_derive::AlignedBorrow; use sp1_stark::air::{MachineAir, SP1AirBuilder}; @@ -65,36 +69,34 @@ impl MachineAir for ProgramChip { !program.instructions.is_empty() || program.preprocessed_shape.is_some(), "empty program" ); - let mut rows = program - .instructions - .iter() + // Generate the trace rows for each event. + let nb_rows = program.instructions.len(); + let size_log2 = program.fixed_log2_rows::(self); + let padded_nb_rows = next_power_of_two(nb_rows, size_log2); + let mut values = zeroed_f_vec(padded_nb_rows * NUM_PROGRAM_PREPROCESSED_COLS); + let chunk_size = std::cmp::max((nb_rows + 1) / num_cpus::get(), 1); + + values + .chunks_mut(chunk_size * NUM_PROGRAM_PREPROCESSED_COLS) .enumerate() - .map(|(i, &instruction)| { - let pc = program.pc_base + (i as u32 * 4); - let mut row = [F::zero(); NUM_PROGRAM_PREPROCESSED_COLS]; - let cols: &mut ProgramPreprocessedCols = row.as_mut_slice().borrow_mut(); - cols.pc = F::from_canonical_u32(pc); - cols.instruction.populate(instruction); - cols.selectors.populate(instruction); - - row - }) - .collect::>(); - - // Pad the trace to a power of two depending on the proof shape in `input`. - pad_rows_fixed( - &mut rows, - || [F::zero(); NUM_PROGRAM_PREPROCESSED_COLS], - program.fixed_log2_rows::(self), - ); + .par_bridge() + .for_each(|(i, rows)| { + rows.chunks_mut(NUM_PROGRAM_PREPROCESSED_COLS).enumerate().for_each(|(j, row)| { + let idx = i * chunk_size + j; + + if idx < nb_rows { + let cols: &mut ProgramPreprocessedCols = row.borrow_mut(); + let instruction = &program.instructions[idx]; + let pc = program.pc_base + (idx as u32 * 4); + cols.pc = F::from_canonical_u32(pc); + cols.instruction.populate(instruction); + cols.selectors.populate(instruction); + } + }); + }); // Convert the trace to a row major matrix. - let trace = RowMajorMatrix::new( - rows.into_iter().flatten().collect::>(), - NUM_PROGRAM_PREPROCESSED_COLS, - ); - - Some(trace) + Some(RowMajorMatrix::new(values, NUM_PROGRAM_PREPROCESSED_COLS)) } fn generate_dependencies(&self, _input: &ExecutionRecord, _output: &mut ExecutionRecord) { diff --git a/crates/core/machine/src/runtime/utils.rs b/crates/core/machine/src/runtime/utils.rs index 7c0ad541e..483400e29 100644 --- a/crates/core/machine/src/runtime/utils.rs +++ b/crates/core/machine/src/runtime/utils.rs @@ -19,7 +19,7 @@ macro_rules! assert_valid_memory_access { assert!($addr > 40); } _ => { - Register::from_u32($addr); + Register::from_u8($addr); } }; } @@ -69,11 +69,7 @@ impl<'a> Runtime<'a> { ); if !self.unconstrained && self.state.global_clk % 10_000_000 == 0 { - log::info!( - "clk = {} pc = 0x{:x?}", - self.state.global_clk, - self.state.pc - ); + log::info!("clk = {} pc = 0x{:x?}", self.state.global_clk, self.state.pc); } } } diff --git a/crates/core/machine/src/syscall/precompiles/edwards/ed_decompress.rs b/crates/core/machine/src/syscall/precompiles/edwards/ed_decompress.rs index c9c5ae93c..97d0e526f 100644 --- a/crates/core/machine/src/syscall/precompiles/edwards/ed_decompress.rs +++ b/crates/core/machine/src/syscall/precompiles/edwards/ed_decompress.rs @@ -72,7 +72,7 @@ impl EdDecompressCols { self.clk = F::from_canonical_u32(event.clk); self.ptr = F::from_canonical_u32(event.ptr); self.nonce = F::from_canonical_u32( - record.nonce_lookup.get(&event.lookup_id).copied().unwrap_or_default(), + record.nonce_lookup.get(event.lookup_id.0 as usize).copied().unwrap_or_default(), ); self.sign = F::from_bool(event.sign); for i in 0..8 { diff --git a/crates/prover/src/lib.rs b/crates/prover/src/lib.rs index 0ff296bb2..984e186e5 100644 --- a/crates/prover/src/lib.rs +++ b/crates/prover/src/lib.rs @@ -33,11 +33,7 @@ use std::{ }; use lru::LruCache; - -use tracing::instrument; - use p3_baby_bear::BabyBear; - use p3_challenger::CanObserve; use p3_field::{AbstractField, PrimeField, PrimeField32}; use p3_matrix::dense::RowMajorMatrix; @@ -80,6 +76,7 @@ use sp1_stark::{ MachineProver, SP1CoreOpts, SP1ProverOpts, ShardProof, StarkGenericConfig, StarkVerifyingKey, Val, Word, DIGEST_SIZE, }; +use tracing::instrument; pub use types::*; use utils::{sp1_committed_values_digest_bn254, sp1_vkey_digest_bn254, words_to_bytes}; @@ -356,8 +353,9 @@ impl SP1Prover { input: &SP1CompressWithVKeyWitnessValues, ) -> Arc> { let mut cache = self.compress_programs.lock().unwrap_or_else(|e| e.into_inner()); + let shape = input.shape(); cache - .get_or_insert(input.shape(), || { + .get_or_insert(shape.clone(), || { let misses = self.compress_cache_misses.fetch_add(1, Ordering::Relaxed); tracing::debug!("compress cache miss, misses: {}", misses); // Get the operations. diff --git a/crates/prover/src/shapes.rs b/crates/prover/src/shapes.rs index b7adddc0e..74f7ba177 100644 --- a/crates/prover/src/shapes.rs +++ b/crates/prover/src/shapes.rs @@ -1,11 +1,13 @@ use std::{ collections::{BTreeMap, BTreeSet, HashSet}, fs::File, + hash::{DefaultHasher, Hash, Hasher}, panic::{catch_unwind, AssertUnwindSafe}, path::PathBuf, sync::{Arc, Mutex}, }; +use eyre::Result; use thiserror::Error; use p3_baby_bear::BabyBear; @@ -29,7 +31,7 @@ pub enum SP1ProofShape { Shrink(ProofShape), } -#[derive(Debug, Clone)] +#[derive(Debug, Clone, Hash)] pub enum SP1CompressProgramShape { Recursion(SP1RecursionShape), Compress(SP1CompressWithVkeyShape), @@ -37,6 +39,14 @@ pub enum SP1CompressProgramShape { Shrink(SP1CompressWithVkeyShape), } +impl SP1CompressProgramShape { + pub fn hash_u64(&self) -> u64 { + let mut hasher = DefaultHasher::new(); + Hash::hash(&self, &mut hasher); + hasher.finish() + } +} + #[derive(Debug, Error)] pub enum VkBuildError { #[error("IO error: {0}")] @@ -231,6 +241,15 @@ impl SP1ProofShape { ) } + pub fn generate_compress_shapes( + recursion_shape_config: &'_ RecursionShapeConfig>, + reduce_batch_size: usize, + ) -> impl Iterator + '_ { + (1..=reduce_batch_size).flat_map(|batch_size| { + recursion_shape_config.get_all_shape_combinations(batch_size).map(Self::Compress) + }) + } + pub fn dummy_vk_map<'a>( core_shape_config: &'a CoreShapeConfig, recursion_shape_config: &'a RecursionShapeConfig>, From 28b7f47d9d1334ca6296494c9db2fe35e120acc6 Mon Sep 17 00:00:00 2001 From: Yuwen Zhang Date: Mon, 4 Nov 2024 15:03:37 -0800 Subject: [PATCH 13/14] reset more stuff --- crates/recursion/circuit/src/machine/deferred.rs | 2 +- .../recursion/compiler/src/circuit/compiler.rs | 5 ++++- .../core/src/chips/poseidon2_skinny/trace.rs | 4 ++++ .../core/src/chips/poseidon2_wide/trace.rs | 4 ++++ crates/recursion/core/src/runtime/memory.rs | 2 +- crates/recursion/core/src/runtime/mod.rs | 16 ++++++++++++++++ 6 files changed, 30 insertions(+), 3 deletions(-) diff --git a/crates/recursion/circuit/src/machine/deferred.rs b/crates/recursion/circuit/src/machine/deferred.rs index 0f38620a7..d5ab72097 100644 --- a/crates/recursion/circuit/src/machine/deferred.rs +++ b/crates/recursion/circuit/src/machine/deferred.rs @@ -43,7 +43,7 @@ pub struct SP1DeferredVerifier { _phantom: std::marker::PhantomData<(C, SC, A)>, } -#[derive(Debug, Clone)] +#[derive(Debug, Clone, Hash)] pub struct SP1DeferredShape { inner: SP1CompressShape, height: usize, diff --git a/crates/recursion/compiler/src/circuit/compiler.rs b/crates/recursion/compiler/src/circuit/compiler.rs index 9569aefd7..14aa320c9 100644 --- a/crates/recursion/compiler/src/circuit/compiler.rs +++ b/crates/recursion/compiler/src/circuit/compiler.rs @@ -17,6 +17,9 @@ use sp1_recursion_core::*; use crate::prelude::*; +/// The number of instructions to preallocate in a recursion program +const PREALLOC_INSTRUCTIONS: usize = 10000000; + /// The backend for the circuit compiler. #[derive(Debug, Clone, Default)] pub struct AsmCompiler { @@ -532,7 +535,7 @@ where // Compile each IR instruction into a list of ASM instructions, then combine them. // This step also counts the number of times each address is read from. let (mut instrs, traces) = tracing::debug_span!("compile_one loop").in_scope(|| { - let mut instrs = Vec::with_capacity(operations.vec.len()); + let mut instrs = Vec::with_capacity(PREALLOC_INSTRUCTIONS); let mut traces = vec![]; if debug_mode { let mut span_builder = diff --git a/crates/recursion/core/src/chips/poseidon2_skinny/trace.rs b/crates/recursion/core/src/chips/poseidon2_skinny/trace.rs index ecd9c5755..7e67f5436 100644 --- a/crates/recursion/core/src/chips/poseidon2_skinny/trace.rs +++ b/crates/recursion/core/src/chips/poseidon2_skinny/trace.rs @@ -41,6 +41,10 @@ impl MachineAir for Poseidon2SkinnyChip format!("Poseidon2SkinnyDeg{}", DEGREE) } + fn generate_dependencies(&self, _: &Self::Record, _: &mut Self::Record) { + // This is a no-op. + } + #[instrument(name = "generate poseidon2 skinny trace", level = "debug", skip_all, fields(rows = input.poseidon2_events.len()))] fn generate_trace( &self, diff --git a/crates/recursion/core/src/chips/poseidon2_wide/trace.rs b/crates/recursion/core/src/chips/poseidon2_wide/trace.rs index e54030568..e13717bfa 100644 --- a/crates/recursion/core/src/chips/poseidon2_wide/trace.rs +++ b/crates/recursion/core/src/chips/poseidon2_wide/trace.rs @@ -37,6 +37,10 @@ impl MachineAir for Poseidon2WideChip { pub val: Block, pub mult: F, diff --git a/crates/recursion/core/src/runtime/mod.rs b/crates/recursion/core/src/runtime/mod.rs index 72667cd93..90bdd1fb5 100644 --- a/crates/recursion/core/src/runtime/mod.rs +++ b/crates/recursion/core/src/runtime/mod.rs @@ -8,6 +8,7 @@ mod record; use backtrace::Backtrace as Trace; pub use instruction::Instruction; use instruction::{FieldEltType, HintBitsInstr, HintExt2FeltsInstr, HintInstr, PrintInstr}; +use machine::RecursionAirEventCount; use memory::*; pub use opcode::*; pub use program::*; @@ -254,6 +255,7 @@ where pub fn run(&mut self) -> Result<(), RuntimeError> { let early_exit_ts = std::env::var("RECURSION_EARLY_EXIT_TS") .map_or(usize::MAX, |ts: String| ts.parse().unwrap()); + self.preallocate_record(); while self.pc < F::from_canonical_u32(self.program.instructions.len() as u32) { let idx = self.pc.as_canonical_u32() as usize; let instruction = self.program.instructions[idx].clone(); @@ -590,4 +592,18 @@ where } Ok(()) } + + pub fn preallocate_record(&mut self) { + let event_counts = self + .program + .instructions + .iter() + .fold(RecursionAirEventCount::default(), |heights, instruction| heights + instruction); + self.record.poseidon2_events.reserve(event_counts.poseidon2_wide_events); + self.record.mem_var_events.reserve(event_counts.mem_var_events); + self.record.base_alu_events.reserve(event_counts.base_alu_events); + self.record.ext_alu_events.reserve(event_counts.ext_alu_events); + self.record.exp_reverse_bits_len_events.reserve(event_counts.exp_reverse_bits_len_events); + self.record.select_events.reserve(event_counts.select_events); + } } From 90f44ee0d92158e209a8be2a3908103e16a5ca03 Mon Sep 17 00:00:00 2001 From: Yuwen Zhang Date: Mon, 4 Nov 2024 20:35:35 -0800 Subject: [PATCH 14/14] cargo update for new secp patch --- examples/Cargo.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/Cargo.lock b/examples/Cargo.lock index 53c25ab80..663d53235 100644 --- a/examples/Cargo.lock +++ b/examples/Cargo.lock @@ -5220,9 +5220,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.38" +version = "0.38.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa260229e6538e52293eeb577aabd09945a09d6d9cc0fc550ed7529056c2e32a" +checksum = "375116bee2be9ed569afe2154ea6a99dfdffd257f533f187498c2a8f5feaf4ee" dependencies = [ "bitflags", "errno", @@ -5357,7 +5357,7 @@ dependencies = [ [[package]] name = "secp256k1" version = "0.29.0" -source = "git+https://github.com/sp1-patches/rust-secp256k1?tag=secp256k1-v0.29.0-patch-v1#13910d476dbdaf436312a9f096ee312593028557" +source = "git+https://github.com/sp1-patches/rust-secp256k1?tag=secp256k1-v0.29.0-patch-v1#c78195abe3c5bc11163d69588a5559ef21bdff31" dependencies = [ "cfg-if", "ecdsa 0.16.9 (git+https://github.com/sp1-patches/signatures?branch=patch-ecdsa-v0.16.9)", @@ -5370,7 +5370,7 @@ dependencies = [ [[package]] name = "secp256k1-sys" version = "0.10.0" -source = "git+https://github.com/sp1-patches/rust-secp256k1?tag=secp256k1-v0.29.0-patch-v1#13910d476dbdaf436312a9f096ee312593028557" +source = "git+https://github.com/sp1-patches/rust-secp256k1?tag=secp256k1-v0.29.0-patch-v1#c78195abe3c5bc11163d69588a5559ef21bdff31" dependencies = [ "cc", ]