From 884ba60dcd4f93e0f17aad389583bc9c3884166b Mon Sep 17 00:00:00 2001 From: Mihai Date: Mon, 6 Jan 2025 17:45:52 +0200 Subject: [PATCH 1/8] add benchmark files --- Cargo.lock | 2 + ceno_zkvm/Cargo.toml | 12 +++++ ceno_zkvm/benches/is_prime.rs | 77 +++++++++++++++++++++++++++ ceno_zkvm/benches/sorting.rs | 81 +++++++++++++++++++++++++++++ examples-builder/build.rs | 1 + examples/examples/bubble_sorting.rs | 2 +- examples/examples/is_prime.rs | 32 ++++++++++++ 7 files changed, 206 insertions(+), 1 deletion(-) create mode 100644 ceno_zkvm/benches/is_prime.rs create mode 100644 ceno_zkvm/benches/sorting.rs create mode 100644 examples/examples/is_prime.rs diff --git a/Cargo.lock b/Cargo.lock index 1d9cc9427..2780c67b2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -326,7 +326,9 @@ dependencies = [ "ark-std", "base64", "bincode", + "ceno-examples", "ceno_emul", + "ceno_host", "cfg-if", "clap", "criterion", diff --git a/ceno_zkvm/Cargo.toml b/ceno_zkvm/Cargo.toml index 0f8241f57..58920c9ec 100644 --- a/ceno_zkvm/Cargo.toml +++ b/ceno_zkvm/Cargo.toml @@ -20,6 +20,9 @@ serde_json.workspace = true base64 = "0.22" ceno_emul = { path = "../ceno_emul" } +ceno-examples = { path = "../examples-builder" } +ceno_host = { path = "../ceno_host" } + ff_ext = { path = "../ff_ext" } mpcs = { path = "../mpcs" } multilinear_extensions = { version = "0", path = "../multilinear_extensions" } @@ -50,6 +53,7 @@ criterion.workspace = true pprof2.workspace = true proptest.workspace = true + [build-dependencies] glob = "0.3" @@ -70,3 +74,11 @@ name = "fibonacci" [[bench]] harness = false name = "fibonacci_witness" + +[[bench]] +harness = false +name = "sorting" + +[[bench]] +harness = false +name = "is_prime" diff --git a/ceno_zkvm/benches/is_prime.rs b/ceno_zkvm/benches/is_prime.rs new file mode 100644 index 000000000..9245d362d --- /dev/null +++ b/ceno_zkvm/benches/is_prime.rs @@ -0,0 +1,77 @@ +use std::time::Duration; + +use ceno_emul::{Platform, Program}; +use ceno_host::CenoStdin; +use ceno_zkvm::{ + self, + e2e::{Checkpoint, Preset, run_e2e_with_checkpoint, setup_platform}, +}; +use criterion::*; + +use goldilocks::GoldilocksExt2; +use mpcs::BasefoldDefault; + +criterion_group! { + name = is_prime; + config = Criterion::default().warm_up_time(Duration::from_millis(5000)); + targets = is_prime_small +} + +criterion_main!(is_prime); + +const NUM_SAMPLES: usize = 10; +type Pcs = BasefoldDefault; +type E = GoldilocksExt2; + +// Relevant init data for fibonacci run +fn setup() -> (Program, Platform) { + let stack_size = 32768; + let heap_size = 2097152; + let pub_io_size = 16; + + let program = Program::load_elf(ceno_examples::is_prime, u32::MAX).unwrap(); + let platform = setup_platform(Preset::Ceno, &program, stack_size, heap_size, pub_io_size); + (program, platform) +} + +fn is_prime_small(c: &mut Criterion) { + let (program, platform) = setup(); + + for n in [100u32, 10000u32, 50000u32] { + let max_steps = usize::MAX; + let mut hints = CenoStdin::default(); + _ = hints.write(&n); + let hints: Vec = (&hints).into(); + + let mut group = c.benchmark_group(format!("is_prime_{}", max_steps)); + group.sample_size(NUM_SAMPLES); + + // Benchmark the proving time + group.bench_function( + BenchmarkId::new("is_prime", format!("is_prime_n={}", n)), + |b| { + b.iter_custom(|iters| { + let mut time = Duration::new(0, 0); + + for _ in 0..iters { + let (_, prove) = run_e2e_with_checkpoint::( + program.clone(), + platform.clone(), + hints.clone(), + max_steps, + Checkpoint::PrepE2EProving, + ); + let instant = std::time::Instant::now(); + prove(); + time += instant.elapsed(); + } + time + }); + }, + ); + + group.finish(); + } + + type E = GoldilocksExt2; +} diff --git a/ceno_zkvm/benches/sorting.rs b/ceno_zkvm/benches/sorting.rs new file mode 100644 index 000000000..d8b0655bb --- /dev/null +++ b/ceno_zkvm/benches/sorting.rs @@ -0,0 +1,81 @@ +use std::time::Duration; + +use ceno_emul::{Platform, Program}; +use ceno_host::CenoStdin; +use ceno_zkvm::{ + self, + e2e::{Checkpoint, Preset, run_e2e_with_checkpoint, setup_platform}, +}; +use criterion::*; + +use goldilocks::GoldilocksExt2; +use mpcs::BasefoldDefault; + +criterion_group! { + name = sorting; + config = Criterion::default().warm_up_time(Duration::from_millis(5000)); + targets = sorting_small +} + +criterion_main!(sorting); + +const NUM_SAMPLES: usize = 10; +type Pcs = BasefoldDefault; +type E = GoldilocksExt2; + +// Relevant init data for fibonacci run +fn setup() -> (Program, Platform) { + // let mut file_path = PathBuf::from(env!("CARGO_MANIFEST_DIR")); + // file_path.push("examples/fibonacci.elf"); + let stack_size = 32768; + let heap_size = 2097152; + let pub_io_size = 16; + // let elf_bytes = fs::read(&file_path).expect("read elf file"); + + let program = Program::load_elf(ceno_examples::bubble_sorting, u32::MAX).unwrap(); + let platform = setup_platform(Preset::Ceno, &program, stack_size, heap_size, pub_io_size); + (program, platform) +} + +fn sorting_small(c: &mut Criterion) { + let (program, platform) = setup(); + use rand::{Rng, SeedableRng}; + let mut rng = rand::rngs::StdRng::seed_from_u64(42); + + for n in [100, 500] { + let max_steps = usize::MAX; + let mut hints = CenoStdin::default(); + _ = hints.write(&(0..n).map(|_| rng.gen::()).collect::>()); + let hints: Vec = (&hints).into(); + + let mut group = c.benchmark_group(format!("sorting")); + group.sample_size(NUM_SAMPLES); + + // Benchmark the proving time + group.bench_function( + BenchmarkId::new("sorting", format!("sorting_n={}", n)), + |b| { + b.iter_custom(|iters| { + let mut time = Duration::new(0, 0); + for _ in 0..iters { + let (_, prove) = run_e2e_with_checkpoint::( + program.clone(), + platform.clone(), + hints.clone(), + max_steps, + Checkpoint::PrepE2EProving, + ); + let instant = std::time::Instant::now(); + prove(); + time += instant.elapsed(); + } + time + }); + }, + ); + + group.finish(); + } + + type E = GoldilocksExt2; +} diff --git a/examples-builder/build.rs b/examples-builder/build.rs index 10d79d4f3..39a63f120 100644 --- a/examples-builder/build.rs +++ b/examples-builder/build.rs @@ -20,6 +20,7 @@ const EXAMPLES: &[&str] = &[ "median", "bubble_sorting", "hashing", + "is_prime", ]; const CARGO_MANIFEST_DIR: &str = env!("CARGO_MANIFEST_DIR"); diff --git a/examples/examples/bubble_sorting.rs b/examples/examples/bubble_sorting.rs index 1267f6a61..cd9f63083 100644 --- a/examples/examples/bubble_sorting.rs +++ b/examples/examples/bubble_sorting.rs @@ -19,5 +19,5 @@ fn main() { let mut scratch = input.to_vec(); sort(&mut scratch); // Print any output you feel like, eg the first element of the sorted vector: - println!("{}", scratch[0]); + // println!("{}", scratch[0]); } diff --git a/examples/examples/is_prime.rs b/examples/examples/is_prime.rs new file mode 100644 index 000000000..5512db654 --- /dev/null +++ b/examples/examples/is_prime.rs @@ -0,0 +1,32 @@ +extern crate ceno_rt; +use ceno_rt::println; +use core::fmt::Write; +use rkyv::Archived; + +fn is_prime(n: u32) -> bool { + if n < 2 { + return false; + } + let mut i = 2; + while i * i <= n { + if n % i == 0 { + return false; + } + i += 1; + } + + return true; +} + +fn main() { + let n: &Archived = ceno_rt::read(); + let mut cnt_primes = 0; + + for i in 0..=n.into() { + cnt_primes += is_prime(i) as u32; + } + + if cnt_primes > 1000 * 1000 { + panic!(); + } +} From f46a021737b62aebf905ec47d4f742597138fae0 Mon Sep 17 00:00:00 2001 From: Mihai Date: Tue, 7 Jan 2025 11:09:24 +0200 Subject: [PATCH 2/8] comment out debug_memory_ranges temporarily --- ceno_zkvm/src/e2e.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ceno_zkvm/src/e2e.rs b/ceno_zkvm/src/e2e.rs index 31cf9d55c..55585af40 100644 --- a/ceno_zkvm/src/e2e.rs +++ b/ceno_zkvm/src/e2e.rs @@ -129,7 +129,7 @@ fn emulate_program( } }) .collect_vec(); - debug_memory_ranges(&vm, &mem_final); + // debug_memory_ranges(&vm, &mem_final); // Find the final public IO cycles. let io_final = io_init From 42669aa68e3b2e106bb1eadbd939a0d045a4f608 Mon Sep 17 00:00:00 2001 From: Mihai Date: Tue, 7 Jan 2025 11:25:59 +0200 Subject: [PATCH 3/8] clean-up and renaming --- ceno_host/tests/test_elf.rs | 2 +- ceno_zkvm/Cargo.toml | 2 +- .../{sorting.rs => quadratic_sorting.rs} | 17 +++++++---------- examples-builder/build.rs | 2 +- .../{bubble_sorting.rs => quadratic_sorting.rs} | 0 5 files changed, 10 insertions(+), 13 deletions(-) rename ceno_zkvm/benches/{sorting.rs => quadratic_sorting.rs} (79%) rename examples/examples/{bubble_sorting.rs => quadratic_sorting.rs} (100%) diff --git a/ceno_host/tests/test_elf.rs b/ceno_host/tests/test_elf.rs index 6831ac9eb..39d132751 100644 --- a/ceno_host/tests/test_elf.rs +++ b/ceno_host/tests/test_elf.rs @@ -137,7 +137,7 @@ fn test_bubble_sorting() -> Result<()> { let all_messages = messages_to_strings(&ceno_host::run( CENO_PLATFORM, - ceno_examples::bubble_sorting, + ceno_examples::quadratic_sorting, &hints, )); for msg in &all_messages { diff --git a/ceno_zkvm/Cargo.toml b/ceno_zkvm/Cargo.toml index 58920c9ec..111c0662e 100644 --- a/ceno_zkvm/Cargo.toml +++ b/ceno_zkvm/Cargo.toml @@ -77,7 +77,7 @@ name = "fibonacci_witness" [[bench]] harness = false -name = "sorting" +name = "quadratic_sorting" [[bench]] harness = false diff --git a/ceno_zkvm/benches/sorting.rs b/ceno_zkvm/benches/quadratic_sorting.rs similarity index 79% rename from ceno_zkvm/benches/sorting.rs rename to ceno_zkvm/benches/quadratic_sorting.rs index d8b0655bb..e57644557 100644 --- a/ceno_zkvm/benches/sorting.rs +++ b/ceno_zkvm/benches/quadratic_sorting.rs @@ -12,12 +12,12 @@ use goldilocks::GoldilocksExt2; use mpcs::BasefoldDefault; criterion_group! { - name = sorting; + name = quadratic_sorting; config = Criterion::default().warm_up_time(Duration::from_millis(5000)); - targets = sorting_small + targets = quadratic_sorting_1 } -criterion_main!(sorting); +criterion_main!(quadratic_sorting); const NUM_SAMPLES: usize = 10; type Pcs = BasefoldDefault; @@ -25,19 +25,16 @@ type E = GoldilocksExt2; // Relevant init data for fibonacci run fn setup() -> (Program, Platform) { - // let mut file_path = PathBuf::from(env!("CARGO_MANIFEST_DIR")); - // file_path.push("examples/fibonacci.elf"); let stack_size = 32768; let heap_size = 2097152; let pub_io_size = 16; - // let elf_bytes = fs::read(&file_path).expect("read elf file"); - let program = Program::load_elf(ceno_examples::bubble_sorting, u32::MAX).unwrap(); + let program = Program::load_elf(ceno_examples::quadratic_sorting, u32::MAX).unwrap(); let platform = setup_platform(Preset::Ceno, &program, stack_size, heap_size, pub_io_size); (program, platform) } -fn sorting_small(c: &mut Criterion) { +fn quadratic_sorting_1(c: &mut Criterion) { let (program, platform) = setup(); use rand::{Rng, SeedableRng}; let mut rng = rand::rngs::StdRng::seed_from_u64(42); @@ -48,12 +45,12 @@ fn sorting_small(c: &mut Criterion) { _ = hints.write(&(0..n).map(|_| rng.gen::()).collect::>()); let hints: Vec = (&hints).into(); - let mut group = c.benchmark_group(format!("sorting")); + let mut group = c.benchmark_group(format!("quadratic_sorting")); group.sample_size(NUM_SAMPLES); // Benchmark the proving time group.bench_function( - BenchmarkId::new("sorting", format!("sorting_n={}", n)), + BenchmarkId::new("quadratic_sorting", format!("n = {}", n)), |b| { b.iter_custom(|iters| { let mut time = Duration::new(0, 0); diff --git a/examples-builder/build.rs b/examples-builder/build.rs index 39a63f120..4e7a5c831 100644 --- a/examples-builder/build.rs +++ b/examples-builder/build.rs @@ -18,7 +18,7 @@ const EXAMPLES: &[&str] = &[ "hints", "sorting", "median", - "bubble_sorting", + "quadratic_sorting", "hashing", "is_prime", ]; diff --git a/examples/examples/bubble_sorting.rs b/examples/examples/quadratic_sorting.rs similarity index 100% rename from examples/examples/bubble_sorting.rs rename to examples/examples/quadratic_sorting.rs From 1ca03ff81c80ccda7ed50279e386df2a811ab9fa Mon Sep 17 00:00:00 2001 From: Mihai Date: Tue, 7 Jan 2025 11:49:17 +0200 Subject: [PATCH 4/8] nit --- ceno_zkvm/benches/is_prime.rs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/ceno_zkvm/benches/is_prime.rs b/ceno_zkvm/benches/is_prime.rs index 9245d362d..ec0cfb01b 100644 --- a/ceno_zkvm/benches/is_prime.rs +++ b/ceno_zkvm/benches/is_prime.rs @@ -14,7 +14,7 @@ use mpcs::BasefoldDefault; criterion_group! { name = is_prime; config = Criterion::default().warm_up_time(Duration::from_millis(5000)); - targets = is_prime_small + targets = is_prime_1 } criterion_main!(is_prime); @@ -28,13 +28,12 @@ fn setup() -> (Program, Platform) { let stack_size = 32768; let heap_size = 2097152; let pub_io_size = 16; - let program = Program::load_elf(ceno_examples::is_prime, u32::MAX).unwrap(); let platform = setup_platform(Preset::Ceno, &program, stack_size, heap_size, pub_io_size); (program, platform) } -fn is_prime_small(c: &mut Criterion) { +fn is_prime_1(c: &mut Criterion) { let (program, platform) = setup(); for n in [100u32, 10000u32, 50000u32] { From a3c6f93044ef1968c8b12e5e711189cdcb0d14db Mon Sep 17 00:00:00 2001 From: Mihai Date: Tue, 7 Jan 2025 15:11:18 +0200 Subject: [PATCH 5/8] hardcode some stuff --- ceno_zkvm/src/bin/e2e.rs | 12 ++++++++++-- ceno_zkvm/src/e2e.rs | 2 +- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/ceno_zkvm/src/bin/e2e.rs b/ceno_zkvm/src/bin/e2e.rs index 47f268b36..7cce686ee 100644 --- a/ceno_zkvm/src/bin/e2e.rs +++ b/ceno_zkvm/src/bin/e2e.rs @@ -1,4 +1,5 @@ use ceno_emul::{IterAddresses, Program, WORD_SIZE, Word}; +use ceno_host::CenoStdin; use ceno_zkvm::{ e2e::{Checkpoint, Preset, run_e2e_with_checkpoint, setup_platform}, with_panic_hook, @@ -44,6 +45,9 @@ struct Args { #[arg(long)] hints: Option, + #[arg(long, default_value = "100")] + n: u32, + /// Stack size in bytes. #[arg(long, default_value = "32768")] stack_size: u32, @@ -97,7 +101,8 @@ fn main() { .init(); tracing::info!("Loading ELF file: {}", &args.elf); - let elf_bytes = fs::read(&args.elf).expect("read elf file"); + // let elf_bytes = fs::read(&args.elf).expect("read elf file"); + let elf_bytes = ceno_examples::is_prime; let program = Program::load_elf(&elf_bytes, u32::MAX).unwrap(); let platform = setup_platform( args.platform, @@ -114,7 +119,10 @@ fn main() { ); tracing::info!("Loading hints file: {:?}", args.hints); - let hints = memory_from_file(&args.hints); + // let hints = memory_from_file(&args.hints); + let mut hints = CenoStdin::default(); + _ = hints.write(&args.n); + let hints: Vec = (&hints).into(); assert!( hints.len() <= platform.hints.iter_addresses().len(), "hints must fit in {} bytes", diff --git a/ceno_zkvm/src/e2e.rs b/ceno_zkvm/src/e2e.rs index 55585af40..cc0c11060 100644 --- a/ceno_zkvm/src/e2e.rs +++ b/ceno_zkvm/src/e2e.rs @@ -443,7 +443,7 @@ pub fn run_e2e_with_checkpoint< // Emulate program let emul_result = emulate_program(program.clone(), max_steps, init_full_mem, &platform, hints); - + println!("Cycles: {:?}", emul_result.all_records.len()); // Clone some emul_result fields before consuming let pi = emul_result.pi.clone(); let exit_code = emul_result.exit_code; From d9936a263214ad686d193edadcb4a77aaa3bdd24 Mon Sep 17 00:00:00 2001 From: Mihai Date: Tue, 7 Jan 2025 15:25:34 +0200 Subject: [PATCH 6/8] add sp1 project --- is_prime/.env.example | 5 + is_prime/.github/workflows/foundry-test.yml | 40 + is_prime/.github/workflows/prove.yml | 39 + is_prime/.gitignore | 19 + is_prime/Cargo.lock | 6078 +++++++++++++++++++ is_prime/Cargo.toml | 10 + is_prime/LICENSE-MIT | 21 + is_prime/README.md | 92 + is_prime/elf/riscv32im-succinct-zkvm-elf | Bin 0 -> 120820 bytes is_prime/lib/Cargo.toml | 7 + is_prime/lib/src/lib.rs | 24 + is_prime/program/Cargo.lock | 1486 +++++ is_prime/program/Cargo.toml | 9 + is_prime/program/src/main.rs | 33 + is_prime/rust-toolchain | 3 + is_prime/script/Cargo.lock | 5960 ++++++++++++++++++ is_prime/script/Cargo.toml | 26 + is_prime/script/build.rs | 5 + is_prime/script/src/bin/evm.rs | 127 + is_prime/script/src/bin/main.rs | 89 + 20 files changed, 14073 insertions(+) create mode 100644 is_prime/.env.example create mode 100644 is_prime/.github/workflows/foundry-test.yml create mode 100644 is_prime/.github/workflows/prove.yml create mode 100644 is_prime/.gitignore create mode 100644 is_prime/Cargo.lock create mode 100644 is_prime/Cargo.toml create mode 100644 is_prime/LICENSE-MIT create mode 100644 is_prime/README.md create mode 100755 is_prime/elf/riscv32im-succinct-zkvm-elf create mode 100644 is_prime/lib/Cargo.toml create mode 100644 is_prime/lib/src/lib.rs create mode 100644 is_prime/program/Cargo.lock create mode 100644 is_prime/program/Cargo.toml create mode 100644 is_prime/program/src/main.rs create mode 100644 is_prime/rust-toolchain create mode 100644 is_prime/script/Cargo.lock create mode 100644 is_prime/script/Cargo.toml create mode 100644 is_prime/script/build.rs create mode 100644 is_prime/script/src/bin/evm.rs create mode 100644 is_prime/script/src/bin/main.rs diff --git a/is_prime/.env.example b/is_prime/.env.example new file mode 100644 index 000000000..48913a134 --- /dev/null +++ b/is_prime/.env.example @@ -0,0 +1,5 @@ +# 'mock' for generating mock proofs locally, 'local' for generating proofs locally, 'network' for generating proofs using the proving network. +SP1_PROVER=local +# If using the proving network, set to your whitelisted private key. For more information, see: +# https://docs.succinct.xyz/prover-network/setup.html#key-setup +SP1_PRIVATE_KEY= \ No newline at end of file diff --git a/is_prime/.github/workflows/foundry-test.yml b/is_prime/.github/workflows/foundry-test.yml new file mode 100644 index 000000000..f00e456d3 --- /dev/null +++ b/is_prime/.github/workflows/foundry-test.yml @@ -0,0 +1,40 @@ +name: Foundry Test + +on: + workflow_dispatch: + push: + branches: [ main ] + pull_request: + +env: + FOUNDRY_PROFILE: ci + +jobs: + check: + strategy: + fail-fast: true + + name: Foundry project + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + submodules: recursive + + - name: Install Foundry + uses: foundry-rs/foundry-toolchain@v1 + with: + version: nightly + + - name: Run Forge build + run: | + cd contracts + forge --version + forge build --sizes + id: build + + - name: Run Forge tests + run: | + cd contracts + forge test -vvv + id: test diff --git a/is_prime/.github/workflows/prove.yml b/is_prime/.github/workflows/prove.yml new file mode 100644 index 000000000..6f160c595 --- /dev/null +++ b/is_prime/.github/workflows/prove.yml @@ -0,0 +1,39 @@ +name: Build Program + +on: + workflow_dispatch: + push: + branches: [main] + pull_request: + +env: + FOUNDRY_PROFILE: ci + +jobs: + check: + strategy: + fail-fast: true + + name: Build + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v4 + with: + submodules: recursive + + - name: Install rust toolchain + uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: 1.81.0 + + - name: Install SP1 toolchain + run: | + curl -L https://sp1.succinct.xyz | bash + ~/.sp1/bin/sp1up + ~/.sp1/bin/cargo-prove prove --version + + - name: Build SP1 program + run: | + cd program + ~/.sp1/bin/cargo-prove prove build diff --git a/is_prime/.gitignore b/is_prime/.gitignore new file mode 100644 index 000000000..174aa94db --- /dev/null +++ b/is_prime/.gitignore @@ -0,0 +1,19 @@ +# Cargo build +**/target + +# Cargo config +.cargo + +# Profile-guided optimization +/tmp +pgo-data.profdata + +# MacOS nuisances +.DS_Store + +# Proofs +**/proof-with-pis.json +**/proof-with-io.json + +# Env +.env \ No newline at end of file diff --git a/is_prime/Cargo.lock b/is_prime/Cargo.lock new file mode 100644 index 000000000..9159014b5 --- /dev/null +++ b/is_prime/Cargo.lock @@ -0,0 +1,6078 @@ +# This file is automatically @generated by Cargo. +# 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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b2e69442aa5628ea6951fa33e24efe8313f4321a91bd729fc2f75bdfc858570" +dependencies = [ + "num-bigint 0.3.3", + "num-integer", + "num-traits", +] + +[[package]] +name = "addr2line" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "aes" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures", +] + +[[package]] +name = "ahash" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" +dependencies = [ + "cfg-if", + "once_cell", + "version_check", + "zerocopy", +] + +[[package]] +name = "aho-corasick" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +dependencies = [ + "memchr", +] + +[[package]] +name = "allocator-api2" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" + +[[package]] +name = "alloy-primitives" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccb3ead547f4532bc8af961649942f0b9c16ee9226e26caa3f38420651cc0bf4" +dependencies = [ + "alloy-rlp", + "bytes", + "cfg-if", + "const-hex", + "derive_more", + "hex-literal", + "itoa", + "k256", + "keccak-asm", + "proptest", + "rand", + "ruint", + "serde", + "tiny-keccak", +] + +[[package]] +name = "alloy-rlp" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26154390b1d205a4a7ac7352aa2eb4f81f391399d4e2f546fb81a2f8bb383f62" +dependencies = [ + "arrayvec", + "bytes", +] + +[[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", + "alloy-sol-macro-input", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[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", + "const-hex", + "heck", + "indexmap", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.72", + "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.72", + "syn-solidity", +] + +[[package]] +name = "alloy-sol-types" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a91ca40fa20793ae9c3841b83e74569d1cc9af29a2f5237314fd3452d51e38c7" +dependencies = [ + "alloy-primitives", + "alloy-sol-macro", + "const-hex", + "serde", +] + +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "ansi_term" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" +dependencies = [ + "winapi", +] + +[[package]] +name = "anstream" +version = "0.6.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is_terminal_polyfill", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1" + +[[package]] +name = "anstyle-parse" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8" +dependencies = [ + "anstyle", + "windows-sys 0.52.0", +] + +[[package]] +name = "anyhow" +version = "1.0.86" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" + +[[package]] +name = "ark-ff" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b3235cc41ee7a12aaaf2c575a2ad7b46713a8a50bda2fc3b003a04845c05dd6" +dependencies = [ + "ark-ff-asm 0.3.0", + "ark-ff-macros 0.3.0", + "ark-serialize 0.3.0", + "ark-std 0.3.0", + "derivative", + "num-bigint 0.4.6", + "num-traits", + "paste", + "rustc_version 0.3.3", + "zeroize", +] + +[[package]] +name = "ark-ff" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec847af850f44ad29048935519032c33da8aa03340876d351dfab5660d2966ba" +dependencies = [ + "ark-ff-asm 0.4.2", + "ark-ff-macros 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "derivative", + "digest 0.10.7", + "itertools 0.10.5", + "num-bigint 0.4.6", + "num-traits", + "paste", + "rustc_version 0.4.0", + "zeroize", +] + +[[package]] +name = "ark-ff-asm" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db02d390bf6643fb404d3d22d31aee1c4bc4459600aef9113833d17e786c6e44" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-ff-asm" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ed4aa4fe255d0bc6d79373f7e31d2ea147bcf486cba1be5ba7ea85abdb92348" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-ff-macros" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db2fd794a08ccb318058009eefdf15bcaaaaf6f8161eb3345f907222bac38b20" +dependencies = [ + "num-bigint 0.4.6", + "num-traits", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-ff-macros" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" +dependencies = [ + "num-bigint 0.4.6", + "num-traits", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-serialize" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d6c2b318ee6e10f8c2853e73a83adc0ccb88995aa978d8a3408d492ab2ee671" +dependencies = [ + "ark-std 0.3.0", + "digest 0.9.0", +] + +[[package]] +name = "ark-serialize" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" +dependencies = [ + "ark-std 0.4.0", + "digest 0.10.7", + "num-bigint 0.4.6", +] + +[[package]] +name = "ark-std" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1df2c09229cbc5a028b1d70e00fdb2acee28b1055dfb5ca73eea49c5a25c4e7c" +dependencies = [ + "num-traits", + "rand", +] + +[[package]] +name = "ark-std" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" +dependencies = [ + "num-traits", + "rand", +] + +[[package]] +name = "arrayref" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d151e35f61089500b617991b791fc8bfd237ae50cd5950803758a179b41e67a" + +[[package]] +name = "arrayvec" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" + +[[package]] +name = "async-trait" +version = "0.1.81" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[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.0", +] + +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + +[[package]] +name = "auto_impl" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "autocfg" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" + +[[package]] +name = "axum" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1236b4b292f6c4d6dc34604bb5120d85c3fe1d1aa596bd5cc52ca054d13e7b9e" +dependencies = [ + "async-trait", + "axum-core", + "bytes", + "futures-util", + "http 1.1.0", + "http-body 1.0.1", + "http-body-util", + "hyper 1.4.1", + "hyper-util", + "itoa", + "matchit", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "rustversion", + "serde", + "serde_json", + "serde_path_to_error", + "serde_urlencoded", + "sync_wrapper 0.1.2", + "tokio", + "tower 0.4.13", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "axum-core" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a15c63fd72d41492dc4f497196f5da1fb04fb7529e631d73630d1b491e47a2e3" +dependencies = [ + "async-trait", + "bytes", + "futures-util", + "http 1.1.0", + "http-body 1.0.1", + "http-body-util", + "mime", + "pin-project-lite", + "rustversion", + "sync_wrapper 0.1.2", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "backtrace" +version = "0.3.73" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a" +dependencies = [ + "addr2line", + "cc", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", + "serde", +] + +[[package]] +name = "base16ct" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" + +[[package]] +name = "base64" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + +[[package]] +name = "base64" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "base64ct" +version = "1.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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" +dependencies = [ + "serde", +] + +[[package]] +name = "bindgen" +version = "0.70.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f49d8fed880d473ea71efb9bf597651e77201bdd4893efe54c9e5d65ae04ce6f" +dependencies = [ + "bitflags 2.6.0", + "cexpr", + "clang-sys", + "itertools 0.13.0", + "log", + "prettyplease", + "proc-macro2", + "quote", + "regex", + "rustc-hash 1.1.0", + "shlex", + "syn 2.0.72", +] + +[[package]] +name = "bit-set" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +dependencies = [ + "bit-vec", +] + +[[package]] +name = "bit-vec" +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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" + +[[package]] +name = "bitvec" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + +[[package]] +name = "blake2" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "blake2b_simd" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780" +dependencies = [ + "arrayref", + "arrayvec", + "constant_time_eq", +] + +[[package]] +name = "blake3" +version = "1.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9ec96fe9a81b5e365f9db71fe00edc4fe4ca2cc7dcb7861f0603012a7caa210" +dependencies = [ + "arrayref", + "arrayvec", + "cc", + "cfg-if", + "constant_time_eq", +] + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array 0.14.7", +] + +[[package]] +name = "bls12_381" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3c196a77437e7cc2fb515ce413a6401291578b5afc8ecb29a3c7ab957f05941" +dependencies = [ + "ff 0.12.1", + "group 0.12.1", + "pairing", + "rand_core", + "subtle", +] + +[[package]] +name = "bs58" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" +dependencies = [ + "sha2", + "tinyvec", +] + +[[package]] +name = "bumpalo" +version = "3.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" + +[[package]] +name = "byte-slice-cast" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" + +[[package]] +name = "bytemuck" +version = "1.16.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "102087e286b4677862ea56cf8fc58bb2cdfa8725c40ffb80fe3a008eb7f2fc83" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50" +dependencies = [ + "serde", +] + +[[package]] +name = "camino" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0ec6b951b160caa93cc0c7b209e5a3bff7aae9062213451ac99493cd844c239" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo-platform" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24b1f0365a6c6bb4020cd05806fd0d33c44d38046b8bd7f0e40814b9763cabfc" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo_metadata" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037" +dependencies = [ + "camino", + "cargo-platform", + "semver 1.0.23", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "cc" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26a5c3fd7bfa1ce3897a3a3501d362b2d87b7f2583ebcb4a949ec25911025cbc" +dependencies = [ + "jobserver", + "libc", +] + +[[package]] +name = "cexpr" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" +dependencies = [ + "nom", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "chrono" +version = "0.4.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" +dependencies = [ + "android-tzdata", + "iana-time-zone", + "num-traits", + "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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" +dependencies = [ + "glob", + "libc", + "libloading", +] + +[[package]] +name = "clap" +version = "4.5.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fbb260a053428790f3de475e304ff84cdbc4face759ea7a3e64c1edd938a7fc" +dependencies = [ + "clap_builder", + "clap_derive", +] + +[[package]] +name = "clap_builder" +version = "4.5.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64b17d7ea74e9f833c7dbf2cbe4fb12ff26783eda4782a8975b72f895c9b4d99" +dependencies = [ + "anstream", + "anstyle", + "clap_lex", + "strsim", +] + +[[package]] +name = "clap_derive" +version = "4.5.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "501d359d5f3dcaf6ecdeee48833ae73ec6e42723a1e52419c79abf9507eec0a0" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "clap_lex" +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", + "thiserror", +] + +[[package]] +name = "coins-bip39" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3db8fba409ce3dc04f7d804074039eb68b960b0829161f8e06c95fea3f122528" +dependencies = [ + "bitvec", + "coins-bip32", + "hmac", + "once_cell", + "pbkdf2 0.12.2", + "rand", + "sha2", + "thiserror", +] + +[[package]] +name = "coins-core" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5286a0843c21f8367f7be734f89df9b822e0321d8bcce8d6e735aadff7d74979" +dependencies = [ + "base64 0.21.7", + "bech32", + "bs58", + "digest 0.10.7", + "generic-array 0.14.7", + "hex", + "ripemd", + "serde", + "serde_derive", + "sha2", + "sha3", + "thiserror", +] + +[[package]] +name = "colorchoice" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0" + +[[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.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94fb8a24a26d37e1ffd45343323dc9fe6654ceea44c12f2fcb3d7ac29e610bc6" +dependencies = [ + "cfg-if", + "cpufeatures", + "hex", + "proptest", + "serde", +] + +[[package]] +name = "const-oid" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + +[[package]] +name = "constant_time_eq" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" + +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + +[[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.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" + +[[package]] +name = "cpufeatures" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" +dependencies = [ + "libc", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" + +[[package]] +name = "crunchy" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" + +[[package]] +name = "crypto-bigint" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" +dependencies = [ + "generic-array 0.14.7", + "rand_core", + "subtle", + "zeroize", +] + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array 0.14.7", + "typenum", +] + +[[package]] +name = "ctr" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" +dependencies = [ + "cipher", +] + +[[package]] +name = "curve25519-dalek" +version = "4.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" +dependencies = [ + "cfg-if", + "cpufeatures", + "curve25519-dalek-derive", + "fiat-crypto", + "rustc_version 0.4.0", + "subtle", + "zeroize", +] + +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "dashu" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85b3e5ac1e23ff1995ef05b912e2b012a8784506987a2651552db2c73fb3d7e0" +dependencies = [ + "dashu-base", + "dashu-float", + "dashu-int", + "dashu-macros", + "dashu-ratio", + "rustversion", +] + +[[package]] +name = "dashu-base" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0b80bf6b85aa68c58ffea2ddb040109943049ce3fbdf4385d0380aef08ef289" + +[[package]] +name = "dashu-float" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85078445a8dbd2e1bd21f04a816f352db8d333643f0c9b78ca7c3d1df71063e7" +dependencies = [ + "dashu-base", + "dashu-int", + "num-modular", + "num-order", + "rustversion", + "static_assertions", +] + +[[package]] +name = "dashu-int" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee99d08031ca34a4d044efbbb21dff9b8c54bb9d8c82a189187c0651ffdb9fbf" +dependencies = [ + "cfg-if", + "dashu-base", + "num-modular", + "num-order", + "rustversion", + "static_assertions", +] + +[[package]] +name = "dashu-macros" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93381c3ef6366766f6e9ed9cf09e4ef9dec69499baf04f0c60e70d653cf0ab10" +dependencies = [ + "dashu-base", + "dashu-float", + "dashu-int", + "dashu-ratio", + "paste", + "proc-macro2", + "quote", + "rustversion", +] + +[[package]] +name = "dashu-ratio" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47e33b04dd7ce1ccf8a02a69d3419e354f2bbfdf4eb911a0b7465487248764c9" +dependencies = [ + "dashu-base", + "dashu-float", + "dashu-int", + "num-modular", + "num-order", + "rustversion", +] + +[[package]] +name = "der" +version = "0.7.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" +dependencies = [ + "const-oid", + "zeroize", +] + +[[package]] +name = "deranged" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" +dependencies = [ + "powerfmt", +] + +[[package]] +name = "derivative" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "derive_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.0", + "syn 2.0.72", +] + +[[package]] +name = "digest" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" +dependencies = [ + "generic-array 0.14.7", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "const-oid", + "crypto-common", + "subtle", +] + +[[package]] +name = "dirs" +version = "5.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" +dependencies = [ + "dirs-sys", +] + +[[package]] +name = "dirs-sys" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" +dependencies = [ + "libc", + "option-ext", + "redox_users", + "windows-sys 0.48.0", +] + +[[package]] +name = "downcast-rs" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" + +[[package]] +name = "dunce" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" + +[[package]] +name = "ecdsa" +version = "0.16.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" +dependencies = [ + "der", + "digest 0.10.7", + "elliptic-curve", + "rfc6979", + "signature", + "spki", +] + +[[package]] +name = "either" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" + +[[package]] +name = "elf" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4445909572dbd556c457c849c4ca58623d84b27c8fff1e74b0b4227d8b90d17b" + +[[package]] +name = "elliptic-curve" +version = "0.13.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" +dependencies = [ + "base16ct", + "crypto-bigint", + "digest 0.10.7", + "ff 0.13.0", + "generic-array 0.14.7", + "group 0.13.0", + "pkcs8", + "rand_core", + "sec1", + "subtle", + "zeroize", +] + +[[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.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" +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", + "rlp", + "serde", + "sha3", + "zeroize", +] + +[[package]] +name = "enum-map" +version = "2.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6866f3bfdf8207509a033af1a75a7b08abda06bbaaeae6669323fd5a097df2e9" +dependencies = [ + "enum-map-derive", + "serde", +] + +[[package]] +name = "enum-map-derive" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f282cfdfe92516eb26c2af8589c274c7c17681f5ecc03c18255fe741c6aa64eb" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "errno" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "eth-keystore" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fda3bf123be441da5260717e0661c25a2fd9cb2b2c1d20bf2e05580047158ab" +dependencies = [ + "aes", + "ctr", + "digest 0.10.7", + "hex", + "hmac", + "pbkdf2 0.11.0", + "rand", + "scrypt", + "serde", + "serde_json", + "sha2", + "sha3", + "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.72", + "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.72", +] + +[[package]] +name = "ethers-core" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82d80cc6ad30b14a48ab786523af33b37f28a8623fc06afd55324816ef18fb1f" +dependencies = [ + "arrayvec", + "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", + "rlp", + "serde", + "serde_json", + "strum", + "syn 2.0.72", + "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", + "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", + "sha2", + "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 = "fastrand" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" + +[[package]] +name = "fastrlp" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "139834ddba373bbdd213dffe02c8d110508dcf1726c2be27e8d1f7d7e1856418" +dependencies = [ + "arrayvec", + "auto_impl", + "bytes", +] + +[[package]] +name = "ff" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d013fc25338cc558c5c2cfbad646908fb23591e2404481826742b651c9af7160" +dependencies = [ + "bitvec", + "rand_core", + "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", + "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-lib" +version = "0.1.0" +dependencies = [ + "alloy-sol-types", +] + +[[package]] +name = "fibonacci-program" +version = "0.1.0" +dependencies = [ + "alloy-sol-types", + "fibonacci-lib", + "sp1-zkvm", +] + +[[package]] +name = "fibonacci-script" +version = "0.1.0" +dependencies = [ + "alloy-sol-types", + "clap", + "fibonacci-lib", + "hex", + "serde", + "serde_json", + "sp1-helper", + "sp1-sdk", + "tracing", +] + +[[package]] +name = "fixed-hash" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" +dependencies = [ + "byteorder", + "rand", + "rustc-hex", + "static_assertions", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foldhash" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f81ec6369c545a7d40e4589b5597581fa1c441fe1cce96dd1de43159910a36a2" + +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + +[[package]] +name = "form_urlencoded" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + +[[package]] +name = "futures" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" + +[[package]] +name = "futures-executor" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" + +[[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.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "futures-sink" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" + +[[package]] +name = "futures-task" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" + +[[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.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d758ba1b47b00caf47f24925c0074ecb20d6dfcffe7f6d53395c0465674841a" + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", + "zeroize", +] + +[[package]] +name = "generic-array" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96512db27971c2c3eece70a1e106fbe6c87760234e31e8f7e5634912fe52794a" +dependencies = [ + "serde", + "typenum", +] + +[[package]] +name = "getrandom" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +dependencies = [ + "cfg-if", + "libc", + "wasi", +] + +[[package]] +name = "gimli" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd" + +[[package]] +name = "git2" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b903b73e45dc0c6c596f2d37eccece7c1c8bb6e4407b001096387c63d0d93724" +dependencies = [ + "bitflags 2.6.0", + "libc", + "libgit2-sys", + "log", + "url", +] + +[[package]] +name = "glob" +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 = "group" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7" +dependencies = [ + "ff 0.12.1", + "memuse", + "rand_core", + "subtle", +] + +[[package]] +name = "group" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" +dependencies = [ + "ff 0.13.0", + "rand_core", + "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", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "h2" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa82e28a107a8cc405f0839610bdc9b15f1e25ec7d696aa5cf173edbcb1486ab" +dependencies = [ + "atomic-waker", + "bytes", + "fnv", + "futures-core", + "futures-sink", + "http 1.1.0", + "indexmap", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "halo2" +version = "0.1.0-beta.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a23c779b38253fe1538102da44ad5bd5378495a61d2c4ee18d64eaa61ae5995" +dependencies = [ + "halo2_proofs", +] + +[[package]] +name = "halo2_proofs" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e925780549adee8364c7f2b685c753f6f3df23bde520c67416e93bf615933760" +dependencies = [ + "blake2b_simd", + "ff 0.12.1", + "group 0.12.1", + "pasta_curves 0.4.1", + "rand_core", + "rayon", +] + +[[package]] +name = "hashbrown" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +dependencies = [ + "ahash", + "allocator-api2", + "serde", +] + +[[package]] +name = "hashbrown" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e087f84d4f86bf4b218b927129862374b72199ae7d8657835f1e89000eea4fb" +dependencies = [ + "allocator-api2", + "equivalent", + "foldhash", +] + +[[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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hermit-abi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "hex-literal" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" + +[[package]] +name = "hmac" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" +dependencies = [ + "bytes", + "http 0.2.12", + "pin-project-lite", +] + +[[package]] +name = "http-body" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" +dependencies = [ + "bytes", + "http 1.1.0", +] + +[[package]] +name = "http-body-util" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" +dependencies = [ + "bytes", + "futures-util", + "http 1.1.0", + "http-body 1.0.1", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9" + +[[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.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a152ddd61dfaec7273fe8419ab357f33aee0d914c5f4efbf0d96fa749eea5ec9" +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.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "h2 0.4.5", + "http 1.1.0", + "http-body 1.0.1", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "smallvec", + "tokio", + "want", +] + +[[package]] +name = "hyper-rustls" +version = "0.27.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ee4be2c948921a1a5320b629c4193916ed787a7f7f293fd3f7f5a6c9de74155" +dependencies = [ + "futures-util", + "http 1.1.0", + "hyper 1.4.1", + "hyper-util", + "rustls", + "rustls-pki-types", + "tokio", + "tokio-rustls", + "tower-service", + "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.30", + "native-tls", + "tokio", + "tokio-native-tls", +] + +[[package]] +name = "hyper-tls" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" +dependencies = [ + "bytes", + "http-body-util", + "hyper 1.4.1", + "hyper-util", + "native-tls", + "tokio", + "tokio-native-tls", + "tower-service", +] + +[[package]] +name = "hyper-util" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ab92f4f49ee4fb4f997c784b7a2e0fa70050211e0b6a287f898c3c9785ca956" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "http 1.1.0", + "http-body 1.0.1", + "hyper 1.4.1", + "pin-project-lite", + "socket2", + "tokio", + "tower 0.4.13", + "tower-service", + "tracing", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "windows-core", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "idna" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "impl-codec" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba6a270039626615617f3f36d15fc827041df3b78c439da2cadfa47455a77f2f" +dependencies = [ + "parity-scale-codec", +] + +[[package]] +name = "impl-rlp" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f28220f89297a075ddc7245cd538076ee98b01f2a9c23a53a4f1105d5a322808" +dependencies = [ + "rlp", +] + +[[package]] +name = "impl-serde" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc88fc67028ae3db0c853baa36269d398d5f45b6982f95549ff5def78c935cd" +dependencies = [ + "serde", +] + +[[package]] +name = "impl-trait-for-tuples" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "indenter" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" + +[[package]] +name = "indexmap" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de3fc2e30ba82dd1b3911c8de1ffc143c74a914a14e99514d7637e3099df5ea0" +dependencies = [ + "equivalent", + "hashbrown 0.14.5", +] + +[[package]] +name = "indicatif" +version = "0.17.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "763a5a8f45087d6bcea4222e7b72c291a054edf80e4ef6efd2a4979878c7bea3" +dependencies = [ + "console", + "instant", + "number_prefix", + "portable-atomic", + "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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "ipnet" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" + +[[package]] +name = "is_terminal_polyfill" +version = "1.70.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" + +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" + +[[package]] +name = "jobserver" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" +dependencies = [ + "libc", +] + +[[package]] +name = "js-sys" +version = "0.3.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" +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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a575df5f985fe1cd5b2b05664ff6accfc46559032b954529fd225a2168d27b0f" +dependencies = [ + "bitvec", + "bls12_381", + "ff 0.12.1", + "group 0.12.1", + "rand_core", + "subtle", +] + +[[package]] +name = "k256" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "956ff9b67e26e1a6a866cb758f12c6f8746208489e3e4a4b5580802f2f0a587b" +dependencies = [ + "cfg-if", + "ecdsa", + "elliptic-curve", + "once_cell", + "sha2", + "signature", +] + +[[package]] +name = "keccak" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" +dependencies = [ + "cpufeatures", +] + +[[package]] +name = "keccak-asm" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "422fbc7ff2f2f5bdffeb07718e5a5324dca72b0c9293d50df4026652385e3314" +dependencies = [ + "digest 0.10.7", + "sha3-asm", +] + +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" +dependencies = [ + "spin 0.9.8", +] + +[[package]] +name = "libc" +version = "0.2.155" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" + +[[package]] +name = "libgit2-sys" +version = "0.17.0+1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10472326a8a6477c3c20a64547b0059e4b0d086869eee31e6d7da728a8eb7224" +dependencies = [ + "cc", + "libc", + "libz-sys", + "pkg-config", +] + +[[package]] +name = "libloading" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4979f22fdb869068da03c9f7528f8297c6fd2606bc3a4affe42e6a823fdb8da4" +dependencies = [ + "cfg-if", + "windows-targets 0.52.6", +] + +[[package]] +name = "libm" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" + +[[package]] +name = "libredox" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" +dependencies = [ + "bitflags 2.6.0", + "libc", +] + +[[package]] +name = "libz-sys" +version = "1.1.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c15da26e5af7e25c90b37a2d75cdbf940cf4a55316de9d84c679c9b8bfabf82e" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "linux-raw-sys" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" + +[[package]] +name = "lock_api" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" + +[[package]] +name = "lru" +version = "0.12.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "234cf4f4a04dc1f57e24b96cc0cd600cf2af460d4161ac5ecdd0af8e1f3b2a38" +dependencies = [ + "hashbrown 0.15.0", +] + +[[package]] +name = "matchers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +dependencies = [ + "regex-automata 0.1.10", +] + +[[package]] +name = "matchit" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" + +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + +[[package]] +name = "memuse" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2145869435ace5ea6ea3d35f59be559317ec9a0d04e1812d5f185a87b6d36f1a" + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + +[[package]] +name = "miniz_oxide" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08" +dependencies = [ + "adler", +] + +[[package]] +name = "mio" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4569e456d394deccd22ce1c1913e6ea0e54519f577285001215d33557431afe4" +dependencies = [ + "hermit-abi", + "libc", + "wasi", + "windows-sys 0.52.0", +] + +[[package]] +name = "native-tls" +version = "0.2.12" +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", +] + +[[package]] +name = "nohash-hasher" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451" + +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "ntapi" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4" +dependencies = [ + "winapi", +] + +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi", +] + +[[package]] +name = "num" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23" +dependencies = [ + "num-bigint 0.4.6", + "num-complex", + "num-integer", + "num-iter", + "num-rational", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f6f7833f2cbf2360a6cfd58cd41a53aa7a90bd4c202f5b1c7dd2ed73c57b2c3" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" +dependencies = [ + "num-integer", + "num-traits", +] + +[[package]] +name = "num-complex" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-modular" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17bb261bf36fa7d83f4c294f834e91256769097b3cb505d44831e0a179ac647f" + +[[package]] +name = "num-order" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "537b596b97c40fcf8056d153049eb22f481c17ebce72a513ec9286e4986d1bb6" +dependencies = [ + "num-modular", +] + +[[package]] +name = "num-rational" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" +dependencies = [ + "num-bigint 0.4.6", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", + "libm", +] + +[[package]] +name = "num_cpus" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "num_enum" +version = "0.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", +] + +[[package]] +name = "num_enum_derive" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799" +dependencies = [ + "proc-macro-crate 1.3.1", + "proc-macro2", + "quote", + "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.1.0", + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "num_threads" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9" +dependencies = [ + "libc", +] + +[[package]] +name = "number_prefix" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" + +[[package]] +name = "object" +version = "0.36.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f203fa8daa7bb185f760ae12bd8e097f63d17041dcdcaf675ac54cdf863170e" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" + +[[package]] +name = "open-fastrlp" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "786393f80485445794f6043fd3138854dd109cc6c4bd1a6383db304c9ce9b9ce" +dependencies = [ + "arrayvec", + "auto_impl", + "bytes", + "ethereum-types", + "open-fastrlp-derive", +] + +[[package]] +name = "open-fastrlp-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "003b2be5c6c53c1cfeb0a238b8a1c3915cd410feb684457a36c10038f764bb1c" +dependencies = [ + "bytes", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "openssl" +version = "0.10.66" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1" +dependencies = [ + "bitflags 2.6.0", + "cfg-if", + "foreign-types", + "libc", + "once_cell", + "openssl-macros", + "openssl-sys", +] + +[[package]] +name = "openssl-macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[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.103" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "option-ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" + +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + +[[package]] +name = "p3-air" +version = "0.1.4-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "066f571b2e645505ed5972dd0e1e252ba03352150830c9566769ca711c0f1e9b" +dependencies = [ + "p3-field", + "p3-matrix", +] + +[[package]] +name = "p3-baby-bear" +version = "0.1.4-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff00f571044d299310d9659c6e51c98422de3bf94b8577f7f30cf59cf2043e40" +dependencies = [ + "num-bigint 0.4.6", + "p3-field", + "p3-mds", + "p3-poseidon2", + "p3-symmetric", + "rand", + "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" +dependencies = [ + "ff 0.13.0", + "num-bigint 0.4.6", + "p3-field", + "p3-poseidon2", + "p3-symmetric", + "rand", + "serde", +] + +[[package]] +name = "p3-challenger" +version = "0.1.4-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3be7e4fbce4566a93091107eadfafa0b5374bd1ffd3e0f6b850da3ff72eb183f" +dependencies = [ + "p3-field", + "p3-maybe-rayon", + "p3-symmetric", + "p3-util", + "serde", + "tracing", +] + +[[package]] +name = "p3-commit" +version = "0.1.4-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a03eb0f99d68a712c41e658e9a7782a0705d4ffcfb6232a43bd3f1ef9591002" +dependencies = [ + "itertools 0.12.1", + "p3-challenger", + "p3-dft", + "p3-field", + "p3-matrix", + "p3-util", + "serde", +] + +[[package]] +name = "p3-dft" +version = "0.1.4-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1556de968523fbe5d804ab50600ea306fcceea3500cfd7601e40882480524664" +dependencies = [ + "p3-field", + "p3-matrix", + "p3-maybe-rayon", + "p3-util", + "tracing", +] + +[[package]] +name = "p3-field" +version = "0.1.4-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cec2af6e1ac47a2035af5165e668d64612c4b9ccabd06df37fc1fd381fdf8a71" +dependencies = [ + "itertools 0.12.1", + "num-bigint 0.4.6", + "num-traits", + "p3-util", + "rand", + "serde", +] + +[[package]] +name = "p3-fri" +version = "0.1.4-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f351ee9f9d4256455164565cd91e3e6d2487cc2a5355515fa2b6d479269188dd" +dependencies = [ + "itertools 0.12.1", + "p3-challenger", + "p3-commit", + "p3-dft", + "p3-field", + "p3-interpolation", + "p3-matrix", + "p3-maybe-rayon", + "p3-util", + "serde", + "tracing", +] + +[[package]] +name = "p3-interpolation" +version = "0.1.4-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d24d0f2907a374ebe4545fcff3120d6376d9630cf0bef30feedcfc5908ea2c37" +dependencies = [ + "p3-field", + "p3-matrix", + "p3-util", +] + +[[package]] +name = "p3-keccak-air" +version = "0.1.4-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e66badd47cedf6570e91a0cabc389b80dfd53ba1a6e9a45a3923fd54b86122ff" +dependencies = [ + "p3-air", + "p3-field", + "p3-matrix", + "p3-maybe-rayon", + "p3-util", + "tracing", +] + +[[package]] +name = "p3-matrix" +version = "0.1.4-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa272f3ae77ed8d73478aa7c89e712efb15bda3ff4aff10fadfe11a012cd5389" +dependencies = [ + "itertools 0.12.1", + "p3-field", + "p3-maybe-rayon", + "p3-util", + "rand", + "serde", + "tracing", +] + +[[package]] +name = "p3-maybe-rayon" +version = "0.1.4-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3eecad6292021858f282d643d9d1284ab112a200494d589863a9c4080e578ef0" +dependencies = [ + "rayon", +] + +[[package]] +name = "p3-mds" +version = "0.1.4-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "716c4dbe68a02f1541eb09149d07b8663a3a5951b1864a31cd67ff3bb0826e57" +dependencies = [ + "itertools 0.12.1", + "p3-dft", + "p3-field", + "p3-matrix", + "p3-symmetric", + "p3-util", + "rand", +] + +[[package]] +name = "p3-merkle-tree" +version = "0.1.4-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad7ebab52a03c26025988663a135aed62f5084a2e2ea262176dc8748efb593e5" +dependencies = [ + "itertools 0.12.1", + "p3-commit", + "p3-field", + "p3-matrix", + "p3-maybe-rayon", + "p3-symmetric", + "p3-util", + "serde", + "tracing", +] + +[[package]] +name = "p3-poseidon2" +version = "0.1.4-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39c042efa15beab7a8c4d0ca9b9e4cbda7582be0c08e121e830fec45f082935b" +dependencies = [ + "gcd", + "p3-field", + "p3-mds", + "p3-symmetric", + "rand", + "serde", +] + +[[package]] +name = "p3-symmetric" +version = "0.1.4-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9896a831f5b688adc13f6fbe1dcf66ecfaa4622a500f81aa745610e777acb72" +dependencies = [ + "itertools 0.12.1", + "p3-field", + "serde", +] + +[[package]] +name = "p3-uni-stark" +version = "0.1.4-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8437ebcd060c8a5479898030b114a93da8a86eb4c2e5f313d9eeaaf40c6e6f61" +dependencies = [ + "itertools 0.12.1", + "p3-air", + "p3-challenger", + "p3-commit", + "p3-dft", + "p3-field", + "p3-matrix", + "p3-maybe-rayon", + "p3-util", + "serde", + "tracing", +] + +[[package]] +name = "p3-util" +version = "0.1.4-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dedb9d27ba47ac314c6fac4ca54e55c3e486c864d51ec5ba55dbe47b75121157" +dependencies = [ + "serde", +] + +[[package]] +name = "pairing" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "135590d8bdba2b31346f9cd1fb2a912329f5135e832a4f422942eb6ead8b6b3b" +dependencies = [ + "group 0.12.1", +] + +[[package]] +name = "parity-scale-codec" +version = "3.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "306800abfa29c7f16596b5970a588435e3d5b3149683d00c12b699cc19f895ee" +dependencies = [ + "arrayvec", + "bitvec", + "byte-slice-cast", + "impl-trait-for-tuples", + "parity-scale-codec-derive", + "serde", +] + +[[package]] +name = "parity-scale-codec-derive" +version = "3.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d830939c76d294956402033aee57a6da7b438f2294eb94864c37b0569053a42c" +dependencies = [ + "proc-macro-crate 3.1.0", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "parking_lot" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-targets 0.52.6", +] + +[[package]] +name = "pasta_curves" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cc65faf8e7313b4b1fbaa9f7ca917a0eed499a9663be71477f87993604341d8" +dependencies = [ + "blake2b_simd", + "ff 0.12.1", + "group 0.12.1", + "lazy_static", + "rand", + "static_assertions", + "subtle", +] + +[[package]] +name = "pasta_curves" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e57598f73cc7e1b2ac63c79c517b31a0877cd7c402cdcaa311b5208de7a095" +dependencies = [ + "blake2b_simd", + "ff 0.13.0", + "group 0.13.0", + "lazy_static", + "rand", + "static_assertions", + "subtle", +] + +[[package]] +name = "paste" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" + +[[package]] +name = "pbkdf2" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "pbkdf2" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" +dependencies = [ + "digest 0.10.7", + "hmac", +] + +[[package]] +name = "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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" + +[[package]] +name = "pest" +version = "2.7.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd53dff83f26735fdc1ca837098ccf133605d794cdae66acfc2bfac3ec809d95" +dependencies = [ + "memchr", + "thiserror", + "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.0", +] + +[[package]] +name = "pin-project" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der", + "spki", +] + +[[package]] +name = "pkg-config" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" + +[[package]] +name = "portable-atomic" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da544ee218f0d287a911e9c99a39a8c9bc8fcad3cb8db5959940044ecfc67265" + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + +[[package]] +name = "ppv-lite86" +version = "0.2.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" +dependencies = [ + "zerocopy", +] + +[[package]] +name = "prettyplease" +version = "0.2.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f12335488a2f3b0a83b14edad48dca9879ce89b2edd10e80237e4e852dd645e" +dependencies = [ + "proc-macro2", + "syn 2.0.72", +] + +[[package]] +name = "primitive-types" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" +dependencies = [ + "fixed-hash", + "impl-codec", + "impl-rlp", + "impl-serde", + "scale-info", + "uint", +] + +[[package]] +name = "proc-macro-crate" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +dependencies = [ + "once_cell", + "toml_edit 0.19.15", +] + +[[package]] +name = "proc-macro-crate" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" +dependencies = [ + "toml_edit 0.21.1", +] + +[[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-macro2" +version = "1.0.86" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "proptest" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4c2511913b88df1637da85cc8d96ec8e43a3f8bb8ccb71ee1ac240d6f3df58d" +dependencies = [ + "bit-set", + "bit-vec", + "bitflags 2.6.0", + "lazy_static", + "num-traits", + "rand", + "rand_chacha", + "rand_xorshift", + "regex-syntax 0.8.4", + "rusty-fork", + "tempfile", + "unarray", +] + +[[package]] +name = "prost" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b0487d90e047de87f984913713b85c601c05609aad5b0df4b4573fbf69aa13f" +dependencies = [ + "bytes", + "prost-derive", +] + +[[package]] +name = "prost-derive" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9552f850d5f0964a4e4d0bf306459ac29323ddfbae05e35a7c0d35cb0803cc5" +dependencies = [ + "anyhow", + "itertools 0.13.0", + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "quick-error" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" + +[[package]] +name = "quinn" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b22d8e7369034b9a7132bc2008cac12f2013c8132b45e0554e6e20e2617f2156" +dependencies = [ + "bytes", + "pin-project-lite", + "quinn-proto", + "quinn-udp", + "rustc-hash 2.0.0", + "rustls", + "socket2", + "thiserror", + "tokio", + "tracing", +] + +[[package]] +name = "quinn-proto" +version = "0.11.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba92fb39ec7ad06ca2582c0ca834dfeadcaf06ddfc8e635c80aa7e1c05315fdd" +dependencies = [ + "bytes", + "rand", + "ring 0.17.8", + "rustc-hash 2.0.0", + "rustls", + "slab", + "thiserror", + "tinyvec", + "tracing", +] + +[[package]] +name = "quinn-udp" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8bffec3605b73c6f1754535084a85229fa8a30f86014e6c81aeec4abb68b0285" +dependencies = [ + "libc", + "once_cell", + "socket2", + "tracing", + "windows-sys 0.52.0", +] + +[[package]] +name = "quote" +version = "1.0.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom", +] + +[[package]] +name = "rand_xorshift" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" +dependencies = [ + "rand_core", +] + +[[package]] +name = "rayon" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", +] + +[[package]] +name = "rayon-scan" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f87cc11a0140b4b0da0ffc889885760c61b13672d80a908920b2c0df078fa14" +dependencies = [ + "rayon", +] + +[[package]] +name = "redox_syscall" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4" +dependencies = [ + "bitflags 2.6.0", +] + +[[package]] +name = "redox_users" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891" +dependencies = [ + "getrandom", + "libredox", + "thiserror", +] + +[[package]] +name = "regex" +version = "1.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata 0.4.7", + "regex-syntax 0.8.4", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax 0.6.29", +] + +[[package]] +name = "regex-automata" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax 0.8.4", +] + +[[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.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" + +[[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.30", + "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", + "tokio", + "tokio-native-tls", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "winreg 0.50.0", +] + +[[package]] +name = "reqwest" +version = "0.12.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7d6d2a27d57148378eb5e111173f4276ad26340ecc5c49a4a2152167a2d6a37" +dependencies = [ + "base64 0.22.1", + "bytes", + "encoding_rs", + "futures-core", + "futures-util", + "h2 0.4.5", + "http 1.1.0", + "http-body 1.0.1", + "http-body-util", + "hyper 1.4.1", + "hyper-rustls", + "hyper-tls 0.6.0", + "hyper-util", + "ipnet", + "js-sys", + "log", + "mime", + "native-tls", + "once_cell", + "percent-encoding", + "pin-project-lite", + "quinn", + "rustls", + "rustls-pemfile 2.1.3", + "rustls-pki-types", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper 1.0.1", + "system-configuration", + "tokio", + "tokio-native-tls", + "tokio-rustls", + "tokio-util", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-streams", + "web-sys", + "webpki-roots", + "winreg 0.52.0", +] + +[[package]] +name = "reqwest-middleware" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39346a33ddfe6be00cbc17a34ce996818b97b230b87229f10114693becca1268" +dependencies = [ + "anyhow", + "async-trait", + "http 1.1.0", + "reqwest 0.12.5", + "serde", + "thiserror", + "tower-service", +] + +[[package]] +name = "rfc6979" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +dependencies = [ + "hmac", + "subtle", +] + +[[package]] +name = "ring" +version = "0.16.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" +dependencies = [ + "cc", + "libc", + "once_cell", + "spin 0.5.2", + "untrusted 0.7.1", + "web-sys", + "winapi", +] + +[[package]] +name = "ring" +version = "0.17.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" +dependencies = [ + "cc", + "cfg-if", + "getrandom", + "libc", + "spin 0.9.8", + "untrusted 0.9.0", + "windows-sys 0.52.0", +] + +[[package]] +name = "ripemd" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "rlp" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" +dependencies = [ + "bytes", + "rlp-derive", + "rustc-hex", +] + +[[package]] +name = "rlp-derive" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e33d7b2abe0c340d8797fe2907d3f20d3b5ea5908683618bfe80df7f621f672a" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "rrs-succinct" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3372685893a9f67d18e98e792d690017287fd17379a83d798d958e517d380fa9" +dependencies = [ + "downcast-rs", + "num_enum 0.5.11", + "paste", +] + +[[package]] +name = "ruint" +version = "1.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c3cc4c2511671f327125da14133d0c5c5d137f006a1017a16f557bc85b16286" +dependencies = [ + "alloy-rlp", + "ark-ff 0.3.0", + "ark-ff 0.4.2", + "bytes", + "fastrlp", + "num-bigint 0.4.6", + "num-traits", + "parity-scale-codec", + "primitive-types", + "proptest", + "rand", + "rlp", + "ruint-macro", + "serde", + "valuable", + "zeroize", +] + +[[package]] +name = "ruint-macro" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48fd7bd8a6377e15ad9d42a8ec25371b94ddc67abe7c8b9127bec79bebaaae18" + +[[package]] +name = "rustc-demangle" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" + +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + +[[package]] +name = "rustc-hash" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152" + +[[package]] +name = "rustc-hex" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" + +[[package]] +name = "rustc_version" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" +dependencies = [ + "semver 0.11.0", +] + +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver 1.0.23", +] + +[[package]] +name = "rustix" +version = "0.38.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" +dependencies = [ + "bitflags 2.6.0", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.52.0", +] + +[[package]] +name = "rustls" +version = "0.23.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c58f8c84392efc0a126acce10fa59ff7b3d2ac06ab451a33f2741989b806b044" +dependencies = [ + "once_cell", + "ring 0.17.8", + "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.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "196fe16b00e106300d3e45ecfcb764fa292a535d7326a29a5875c579c7417425" +dependencies = [ + "base64 0.22.1", + "rustls-pki-types", +] + +[[package]] +name = "rustls-pki-types" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "976295e77ce332211c0d24d92c0e83e50f5c5f046d11082cea19f3df13a3562d" + +[[package]] +name = "rustls-webpki" +version = "0.102.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e6b52d4fda176fd835fdc55a835d4a89b8499cad995885a21149d5ad62f852e" +dependencies = [ + "ring 0.17.8", + "rustls-pki-types", + "untrusted 0.9.0", +] + +[[package]] +name = "rustversion" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" + +[[package]] +name = "rusty-fork" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb3dcc6e454c328bb824492db107ab7c0ae8fcffe4ad210136ef014458c1bc4f" +dependencies = [ + "fnv", + "quick-error", + "tempfile", + "wait-timeout", +] + +[[package]] +name = "ryu" +version = "1.0.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.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eca070c12893629e2cc820a9761bedf6ce1dcddc9852984d1dc734b8bd9bd024" +dependencies = [ + "cfg-if", + "derive_more", + "parity-scale-codec", + "scale-info-derive", +] + +[[package]] +name = "scale-info-derive" +version = "2.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d35494501194174bda522a32605929eefc9ecf7e0a326c26db1fdd85881eb62" +dependencies = [ + "proc-macro-crate 3.1.0", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "scc" +version = "2.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d777f59627453628a9a5be1ee8d948745b94b1dfc2d0c3099cbd9e08ab89e7c" +dependencies = [ + "sdd", +] + +[[package]] +name = "schannel" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +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 = "9f9e24d2b632954ded8ab2ef9fea0a0c769ea56ea98bddbafbad22caeeadf45d" +dependencies = [ + "hmac", + "pbkdf2 0.11.0", + "salsa20", + "sha2", +] + +[[package]] +name = "sdd" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "177258b64c0faaa9ffd3c65cd3262c2bc7e2588dbbd9c1641d0346145c1bbda8" + +[[package]] +name = "sec1" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" +dependencies = [ + "base16ct", + "der", + "generic-array 0.14.7", + "pkcs8", + "subtle", + "zeroize", +] + +[[package]] +name = "security-framework" +version = "2.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" +dependencies = [ + "bitflags 2.6.0", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75da29fe9b9b08fe9d6b22b5b4bcbc75d8db3aa31e639aa56bb62e9d46bfceaf" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "semver" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" +dependencies = [ + "semver-parser", +] + +[[package]] +name = "semver" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" +dependencies = [ + "serde", +] + +[[package]] +name = "semver-parser" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" +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.210" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.210" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "serde_json" +version = "1.0.122" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "784b6203951c57ff748476b126ccb5e8e2959a5c19e5c617ab1956be3dbc68da" +dependencies = [ + "itoa", + "memchr", + "ryu", + "serde", +] + +[[package]] +name = "serde_path_to_error" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af99884400da37c88f5e9146b7f1fd0fbcae8f6eec4e9da38b67d05486f814a6" +dependencies = [ + "itoa", + "serde", +] + +[[package]] +name = "serde_spanned" +version = "0.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb5b1b31579f3811bf615c144393417496f152e12ac8b7663bf664f4a815306d" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serial_test" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b4b487fe2acf240a021cf57c6b2b4903b1e78ca0ecd862a71b71d2a51fed77d" +dependencies = [ + "futures", + "log", + "once_cell", + "parking_lot", + "scc", + "serial_test_derive", +] + +[[package]] +name = "serial_test_derive" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82fe9db325bcef1fbcde82e078a5cc4efdf787e96b3b9cf45b50b529f2083d67" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "sha2" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.7", +] + +[[package]] +name = "sha3" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" +dependencies = [ + "digest 0.10.7", + "keccak", +] + +[[package]] +name = "sha3-asm" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57d79b758b7cb2085612b11a235055e485605a5103faccdd633f35bd7aee69dd" +dependencies = [ + "cc", + "cfg-if", +] + +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "signal-hook-registry" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" +dependencies = [ + "libc", +] + +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "digest 0.10.7", + "rand_core", +] + +[[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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fed904c7fb2856d868b92464fc8fa597fce366edea1a9cbfaa8cb5fe080bd6d" + +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] + +[[package]] +name = "smallvec" +version = "1.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" + +[[package]] +name = "snowbridge-amcl" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "460a9ed63cdf03c1b9847e8a12a5f5ba19c4efd5869e4a737e05be25d7c427e5" +dependencies = [ + "parity-scale-codec", + "scale-info", +] + +[[package]] +name = "socket2" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "sp1-build" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8929a4197b02537dbcd16a078e9424d40985438091df64a9373ebd10e5557083" +dependencies = [ + "anyhow", + "cargo_metadata", + "chrono", + "clap", + "dirs", +] + +[[package]] +name = "sp1-core-executor" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ff9718f87f207404aee3f447c4438e2a35791092dc24ce65ff95db699ed49c1" +dependencies = [ + "bincode", + "bytemuck", + "elf", + "enum-map", + "eyre", + "hashbrown 0.14.5", + "hex", + "itertools 0.13.0", + "log", + "nohash-hasher", + "num", + "p3-field", + "p3-maybe-rayon", + "rand", + "rrs-succinct", + "serde", + "sp1-curves", + "sp1-primitives", + "sp1-stark", + "strum", + "strum_macros", + "thiserror", + "tiny-keccak", + "tracing", + "typenum", + "vec_map", +] + +[[package]] +name = "sp1-core-machine" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ac8b5f2cecb7b2174495fc7a3e004bdb78e1c7ea44577ac0acc0d1e90b817ea" +dependencies = [ + "bincode", + "cfg-if", + "elliptic-curve", + "generic-array 1.1.0", + "hashbrown 0.14.5", + "hex", + "itertools 0.13.0", + "k256", + "log", + "num", + "num_cpus", + "p3-air", + "p3-baby-bear", + "p3-blake3", + "p3-challenger", + "p3-field", + "p3-keccak-air", + "p3-matrix", + "p3-maybe-rayon", + "p3-uni-stark", + "p3-util", + "rand", + "serde", + "size", + "snowbridge-amcl", + "sp1-core-executor", + "sp1-curves", + "sp1-derive", + "sp1-primitives", + "sp1-stark", + "static_assertions", + "strum", + "strum_macros", + "tempfile", + "thiserror", + "tracing", + "tracing-forest", + "tracing-subscriber", + "typenum", + "web-time", +] + +[[package]] +name = "sp1-curves" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1af9ff15e524ebe58286d7ee9bc345657b45b13091b5dc58fdce61542b65a47" +dependencies = [ + "cfg-if", + "curve25519-dalek", + "dashu", + "elliptic-curve", + "generic-array 1.1.0", + "itertools 0.13.0", + "k256", + "num", + "p3-field", + "serde", + "snowbridge-amcl", + "sp1-primitives", + "sp1-stark", + "typenum", +] + +[[package]] +name = "sp1-derive" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f1490c07bd283f59169eae6e67df355b5de8ba10cc75bf6dbfc05a28fdccfc6" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "sp1-helper" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae43cd2ae4ba94fc2ba7835fb0131375f52b93f385116a7a55e858a29044b592" +dependencies = [ + "sp1-build", +] + +[[package]] +name = "sp1-lib" +version = "3.0.0-rc4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5673b2827eb4206316092d9617369b0e55894798b3bbd0f94efe39b0fa055925" +dependencies = [ + "bincode", + "serde", +] + +[[package]] +name = "sp1-primitives" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "025f06b633588e246308ad5f67b32f0f7d1cbeab38f7a842314699270bc706f5" +dependencies = [ + "bincode", + "hex", + "lazy_static", + "num-bigint 0.4.6", + "p3-baby-bear", + "p3-field", + "p3-poseidon2", + "p3-symmetric", + "serde", + "sha2", +] + +[[package]] +name = "sp1-prover" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bd16530cb12f1cecb1b6902142d8d0d87507f88de84bc714f10c29a7fd3769c" +dependencies = [ + "anyhow", + "bincode", + "clap", + "dirs", + "eyre", + "itertools 0.13.0", + "lazy_static", + "lru", + "num-bigint 0.4.6", + "p3-baby-bear", + "p3-bn254-fr", + "p3-challenger", + "p3-commit", + "p3-field", + "p3-matrix", + "p3-symmetric", + "rayon", + "reqwest 0.11.27", + "serde", + "serde_json", + "serial_test", + "sp1-core-executor", + "sp1-core-machine", + "sp1-primitives", + "sp1-recursion-circuit", + "sp1-recursion-compiler", + "sp1-recursion-core", + "sp1-recursion-gnark-ffi", + "sp1-stark", + "subtle-encoding", + "tempfile", + "thiserror", + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "sp1-recursion-circuit" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98d0a8ceee12600bd14d2e2d31b54db00b7985e30acedbfe8e1c1a9e41d7992f" +dependencies = [ + "hashbrown 0.14.5", + "itertools 0.13.0", + "num-traits", + "p3-air", + "p3-baby-bear", + "p3-bn254-fr", + "p3-challenger", + "p3-commit", + "p3-dft", + "p3-field", + "p3-fri", + "p3-matrix", + "p3-symmetric", + "p3-util", + "rand", + "rayon", + "serde", + "sp1-core-executor", + "sp1-core-machine", + "sp1-derive", + "sp1-primitives", + "sp1-recursion-compiler", + "sp1-recursion-core", + "sp1-recursion-gnark-ffi", + "sp1-stark", + "tracing", +] + +[[package]] +name = "sp1-recursion-compiler" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "591d60768948dcef34a1fc16c3c6cf457e32fdee83d55ec14dbb94cd4447c030" +dependencies = [ + "backtrace", + "itertools 0.13.0", + "p3-baby-bear", + "p3-bn254-fr", + "p3-field", + "p3-symmetric", + "serde", + "sp1-core-machine", + "sp1-primitives", + "sp1-recursion-core", + "sp1-recursion-derive", + "sp1-stark", + "tracing", + "vec_map", +] + +[[package]] +name = "sp1-recursion-core" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85c15a51b675accb41608f7bf7ef5f95c23b47ceac38a9a87833a2b12c3bc190" +dependencies = [ + "backtrace", + "ff 0.13.0", + "hashbrown 0.14.5", + "itertools 0.13.0", + "p3-air", + "p3-baby-bear", + "p3-bn254-fr", + "p3-challenger", + "p3-commit", + "p3-dft", + "p3-field", + "p3-fri", + "p3-matrix", + "p3-maybe-rayon", + "p3-merkle-tree", + "p3-poseidon2", + "p3-symmetric", + "p3-util", + "serde", + "sp1-core-machine", + "sp1-derive", + "sp1-primitives", + "sp1-stark", + "static_assertions", + "thiserror", + "tracing", + "vec_map", + "zkhash", +] + +[[package]] +name = "sp1-recursion-derive" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5b2aaa03093afb2b0f58379bb4f0d7898344ef1bb8dd326ec02db7125c1a590" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "sp1-recursion-gnark-ffi" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a12889c662cf64870e72bb3ba8096f3465bf442f5f179c07b50c86f5c47ce80" +dependencies = [ + "anyhow", + "bincode", + "bindgen", + "cc", + "cfg-if", + "hex", + "log", + "num-bigint 0.4.6", + "p3-baby-bear", + "p3-field", + "p3-symmetric", + "serde", + "serde_json", + "sha2", + "sp1-core-machine", + "sp1-recursion-compiler", + "sp1-stark", + "tempfile", +] + +[[package]] +name = "sp1-sdk" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39bab15e962d1218e8ad021b2e9904597d5506d12847ef8be182385d5f3d3a6c" +dependencies = [ + "alloy-sol-types", + "anyhow", + "async-trait", + "bincode", + "cfg-if", + "dirs", + "ethers", + "futures", + "hashbrown 0.14.5", + "hex", + "indicatif", + "itertools 0.13.0", + "log", + "p3-baby-bear", + "p3-field", + "p3-fri", + "prost", + "reqwest 0.12.5", + "reqwest-middleware", + "serde", + "sp1-core-executor", + "sp1-core-machine", + "sp1-primitives", + "sp1-prover", + "sp1-stark", + "strum", + "strum_macros", + "tempfile", + "thiserror", + "tokio", + "tracing", + "twirp-rs", + "vergen", +] + +[[package]] +name = "sp1-stark" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec27b60e797a52eed7af54e032498edcaf8f1ab0649077cbaa6f146a740380dd" +dependencies = [ + "arrayref", + "getrandom", + "hashbrown 0.14.5", + "itertools 0.13.0", + "num-traits", + "p3-air", + "p3-baby-bear", + "p3-challenger", + "p3-commit", + "p3-dft", + "p3-field", + "p3-fri", + "p3-matrix", + "p3-maybe-rayon", + "p3-merkle-tree", + "p3-poseidon2", + "p3-symmetric", + "p3-uni-stark", + "p3-util", + "rayon-scan", + "serde", + "sp1-derive", + "sp1-primitives", + "strum", + "strum_macros", + "sysinfo", + "thiserror", + "tracing", +] + +[[package]] +name = "sp1-zkvm" +version = "3.0.0-rc4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "272348a72c96fcc794756da57fd17ae48e79d005ff7e27224f745bb3fb68b12e" +dependencies = [ + "cfg-if", + "getrandom", + "lazy_static", + "libm", + "rand", + "sha2", + "sp1-lib", +] + +[[package]] +name = "spin" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" + +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" + +[[package]] +name = "spki" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +dependencies = [ + "base64ct", + "der", +] + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "strum" +version = "0.26.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" +dependencies = [ + "strum_macros", +] + +[[package]] +name = "strum_macros" +version = "0.26.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "rustversion", + "syn 2.0.72", +] + +[[package]] +name = "subtle" +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 = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.72" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc4b9b9bf2add8093d3f2c0204471e951b2285580335de42f9d2534f3ae7a8af" +dependencies = [ + "proc-macro2", + "quote", + "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.72", +] + +[[package]] +name = "sync_wrapper" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" + +[[package]] +name = "sync_wrapper" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" + +[[package]] +name = "sysinfo" +version = "0.30.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a5b4ddaee55fb2bea2bf0e5000747e5f5c0de765e5a5ff87f4cd106439f4bb3" +dependencies = [ + "cfg-if", + "core-foundation-sys", + "libc", + "ntapi", + "once_cell", + "rayon", + "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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + +[[package]] +name = "tempfile" +version = "3.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8fcd239983515c23a32fb82099f97d0b11b8c72f654ed659363a95c3dad7a53" +dependencies = [ + "cfg-if", + "fastrand", + "once_cell", + "rustix", + "windows-sys 0.52.0", +] + +[[package]] +name = "thiserror" +version = "1.0.64" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d50af8abc119fb8bb6dbabcfa89656f46f84aa0ac7688088608076ad2b459a84" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.64" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08904e7672f5eb876eaaf87e0ce17857500934f4981c4a0ab2b4aa98baac7fc3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "thread_local" +version = "1.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" +dependencies = [ + "cfg-if", + "once_cell", +] + +[[package]] +name = "time" +version = "0.3.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" +dependencies = [ + "deranged", + "itoa", + "libc", + "num-conv", + "num_threads", + "powerfmt", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" + +[[package]] +name = "time-macros" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" +dependencies = [ + "num-conv", + "time-core", +] + +[[package]] +name = "tiny-keccak" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +dependencies = [ + "crunchy", +] + +[[package]] +name = "tinyvec" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.40.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2b070231665d27ad9ec9b8df639893f46727666c6767db40317fbe920a5d998" +dependencies = [ + "backtrace", + "bytes", + "libc", + "mio", + "parking_lot", + "pin-project-lite", + "signal-hook-registry", + "socket2", + "tokio-macros", + "windows-sys 0.52.0", +] + +[[package]] +name = "tokio-macros" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "tokio-native-tls" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" +dependencies = [ + "native-tls", + "tokio", +] + +[[package]] +name = "tokio-rustls" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" +dependencies = [ + "rustls", + "rustls-pki-types", + "tokio", +] + +[[package]] +name = "tokio-util" +version = "0.7.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "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.20", +] + +[[package]] +name = "toml_datetime" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.19.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +dependencies = [ + "indexmap", + "toml_datetime", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" +dependencies = [ + "indexmap", + "toml_datetime", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.22.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d" +dependencies = [ + "indexmap", + "serde", + "serde_spanned", + "toml_datetime", + "winnow 0.6.18", +] + +[[package]] +name = "tower" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +dependencies = [ + "futures-core", + "futures-util", + "pin-project", + "pin-project-lite", + "tokio", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2873938d487c3cfb9aed7546dc9f2711d867c9f90c46b889989a2cb84eba6b4f" +dependencies = [ + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-layer" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" + +[[package]] +name = "tower-service" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" + +[[package]] +name = "tracing" +version = "0.1.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +dependencies = [ + "log", + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "tracing-core" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-forest" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee40835db14ddd1e3ba414292272eddde9dad04d3d4b65509656414d1c42592f" +dependencies = [ + "ansi_term", + "smallvec", + "thiserror", + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "tracing-futures" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" +dependencies = [ + "pin-project", + "tracing", +] + +[[package]] +name = "tracing-log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" +dependencies = [ + "matchers", + "nu-ansi-term", + "once_cell", + "regex", + "sharded-slab", + "smallvec", + "thread_local", + "tracing", + "tracing-core", + "tracing-log", +] + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "twirp-rs" +version = "0.13.0-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27dfcc06b8d9262bc2d4b8d1847c56af9971a52dd8a0076876de9db763227d0d" +dependencies = [ + "async-trait", + "axum", + "futures", + "http 1.1.0", + "http-body-util", + "hyper 1.4.1", + "prost", + "reqwest 0.12.5", + "serde", + "serde_json", + "thiserror", + "tokio", + "tower 0.5.1", + "url", +] + +[[package]] +name = "typenum" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" + +[[package]] +name = "ucd-trie" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" + +[[package]] +name = "uint" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76f64bba2c53b04fcab63c01a7d7427eadc821e3bc48c34dc9ba29c501164b52" +dependencies = [ + "byteorder", + "crunchy", + "hex", + "static_assertions", +] + +[[package]] +name = "unarray" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" + +[[package]] +name = "unicode-bidi" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" + +[[package]] +name = "unicode-ident" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unicode-normalization" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-width" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0336d538f7abc86d282a4189614dfaa90810dfc2c6f6427eaf88e16311dd225d" + +[[package]] +name = "unicode-xid" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" + +[[package]] +name = "untrusted" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" + +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + +[[package]] +name = "url" +version = "2.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", +] + +[[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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "vec_map" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" +dependencies = [ + "serde", +] + +[[package]] +name = "vergen" +version = "8.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2990d9ea5967266ea0ccf413a4aa5c42a93dbcfda9cb49a97de6931726b12566" +dependencies = [ + "anyhow", + "cfg-if", + "git2", + "rustversion", + "time", +] + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "wait-timeout" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6" +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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasm-bindgen" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.72", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.42" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" + +[[package]] +name = "wasm-streams" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b65dc4c90b63b118468cf747d8bf3566c1913ef60be765b5730ead9e0a3ba129" +dependencies = [ + "futures-util", + "js-sys", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "web-sys" +version = "0.3.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "web-time" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "webpki-roots" +version = "0.26.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd7c23921eeb1713a4e851530e9b9756e4fb0e89978582942612524cf09f01cd" +dependencies = [ + "rustls-pki-types", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be" +dependencies = [ + "windows-core", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-core" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "winnow" +version = "0.5.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] + +[[package]] +name = "winnow" +version = "0.6.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68a9bda4691f099d435ad181000724da8e5899daa10713c2d432552b9ccd3a6f" +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 = "winreg" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5" +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.0", + "send_wrapper 0.6.0", + "thiserror", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + +[[package]] +name = "zerocopy" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" +dependencies = [ + "byteorder", + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "zeroize" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "zkhash" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4352d1081da6922701401cdd4cbf29a2723feb4cfabb5771f6fee8e9276da1c7" +dependencies = [ + "ark-ff 0.4.2", + "ark-std 0.4.0", + "bitvec", + "blake2", + "bls12_381", + "byteorder", + "cfg-if", + "group 0.12.1", + "group 0.13.0", + "halo2", + "hex", + "jubjub", + "lazy_static", + "pasta_curves 0.5.1", + "rand", + "serde", + "sha2", + "sha3", + "subtle", +] diff --git a/is_prime/Cargo.toml b/is_prime/Cargo.toml new file mode 100644 index 000000000..3915b2091 --- /dev/null +++ b/is_prime/Cargo.toml @@ -0,0 +1,10 @@ +[workspace] +members = [ + "lib", + "program", + "script", +] +resolver = "2" + +[workspace.dependencies] +alloy-sol-types = "0.7.7" \ No newline at end of file diff --git a/is_prime/LICENSE-MIT b/is_prime/LICENSE-MIT new file mode 100644 index 000000000..626685c7e --- /dev/null +++ b/is_prime/LICENSE-MIT @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2024 Succinct Labs + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. \ No newline at end of file diff --git a/is_prime/README.md b/is_prime/README.md new file mode 100644 index 000000000..c662baf2f --- /dev/null +++ b/is_prime/README.md @@ -0,0 +1,92 @@ +# SP1 Project Template + +This is a template for creating an end-to-end [SP1](https://github.com/succinctlabs/sp1) project +that can generate a proof of any RISC-V program. + +## Requirements + +- [Rust](https://rustup.rs/) +- [SP1](https://docs.succinct.xyz/getting-started/install.html) + +## Running the Project + +There are four main ways to run this project: build a program, execute a program, generate a core proof, and +generate an EVM-compatible proof. + +### Build the Program + +To build the program, run the following command: + +```sh +cd program +cargo prove build +``` + +### Execute the Program + +To run the program without generating a proof: + +```sh +cd script +cargo run --release -- --execute +``` + +This will execute the program and display the output. + +### Generate a Core Proof + +To generate a core proof for your program: + +```sh +cd script +cargo run --release -- --prove +``` + +### Generate an EVM-Compatible Proof + +> [!WARNING] +> You will need at least 128GB RAM to generate a Groth16 or PLONK proof. + +To generate a proof that is small enough to be verified on-chain and verifiable by the EVM: + +```sh +cd script +cargo run --release --bin evm -- --system groth16 +``` + +this will generate a Groth16 proof. If you want to generate a PLONK proof, run the following command: + +```sh +cargo run --release --bin evm -- --system plonk +``` + +These commands will also generate fixtures that can be used to test the verification of SP1 zkVM proofs +inside Solidity. + +### Retrieve the Verification Key + +To retrieve your `programVKey` for your on-chain contract, run the following command: + +```sh +cargo prove vkey --program fibonacci-program +``` + +## Using the Prover Network + +We highly recommend using the Succinct prover network for any non-trivial programs or benchmarking purposes. For more information, see the [setup guide](https://docs.succinct.xyz/generating-proofs/prover-network.html). + +To get started, copy the example environment file: + +```sh +cp .env.example .env +``` + +Then, set the `SP1_PROVER` environment variable to `network` and set the `SP1_PRIVATE_KEY` +environment variable to your whitelisted private key. + +For example, to generate an EVM-compatible proof using the prover network, run the following +command: + +```sh +SP1_PROVER=network SP1_PRIVATE_KEY=... cargo run --release --bin evm +``` diff --git a/is_prime/elf/riscv32im-succinct-zkvm-elf b/is_prime/elf/riscv32im-succinct-zkvm-elf new file mode 100755 index 0000000000000000000000000000000000000000..3938e57cfba3d2f791461852dd2288a3042cb7e7 GIT binary patch literal 120820 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

3wQ?my>b$B-ap_Omp+-# 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

6!W1d|py<(!0wD<8r3tG&=1$ zfqHfeMxx=oyo#EJyu8A2dE=~{3#a6`03E(chb!Of3*$HL%iS)!FBm9Na^}Iaya|EY zNNrw)r^4y8hkXubxzC;N^p@xQE9~Cg&F!yZfU4|7#wF zJ+2C`Kj8NJ%AG-ngXNLq|LB=F=z~A5P|)ji+snOv=9#nGiE#fPgZ2CU<>9d3?+JQb z?ogPg!S#RiEZ-9dS9rp%U?A)aR5-#c4gc4e1)Lr`EYDw&A9i?LE*JC6!(v8uOLpq2 zZLINd+pemqtM1&U$=>nf#EfjLuevrYS-Iby9|#7#o_xE*?+N*Mrh5}%)HOtXj!-mG zS6WqDT2~zihN&I}s;eWxyu9+ryl^Nl@BGL-dRSgn8;pcdox;&*B$}63M7N9abHo%J zU8q!{a-Xj}6!3fUgB2C|-g1^C9|h<2u^QT`&r@0Z?hIGsVC*HPhhhVxyn zFfRo^Ea{>t3+sj?I*wUaqnIxktAt2{)3iU6q=*^$%*;MPo~-dN}Q_{E*LQ58_vD(2EsyJKfIiH(RQ$Zkq#umMX5pOM*n)* zzdrV_pZ$wuhVq#dKXv*Tr;Q z-M42Ru!{xbV!^mrFmAh&Ki^X`d(O4tYeK%ztogMy!Fe?v-|X_>EJ`Me1y2CQnMJ{^ z)Z=G?uAM!nCeQ74yYubgil8Ipb$L8KeV_rw_KF|$1f6bYAm8mScX>iCcd*>!c6vkQ zfr@gkH$Oj=*Ir*vD%o!RCzVWC{Ygc6sqvz6z$B1L2QMrK&ol=wE(gl%#OZb@HI4Pv zr8VK2`fx*DP|7~>JXklMKj#Gsqpk}^!_}pgRmf+aXW{`HJorU`Zp!Wa$y3H&aB=CB zNmN77zoJnO=i5Dj@^ZUB$T|=Q8^5$``RnJ`2how#dl9EdbiTuf2c@iM!M|0rYQrHv zRk+fUNt4M-N1)sj4h4gDpWE%RyNeQ|JfGiFQC{H=g~E2HD-`nhJ-!NG$WajvV$9%i zyYd|EWph$d%Hw%?3EMrXf&)ba1^zE=7a7%V_$OCp^~=i)*V}HCCs$*2#LKFgxBH=S zGx9Q<@^UX&HN)m#*p-jP#m88m|0LGLTNz3%`wIym10m~VX>quf>ZMH}zyb5=P-S5hG`Q3hRexSn3tdG}ko+~V?yB6h9BT*--4hTCh z>)tk?T#(b`-50I+^^COLzwN7AnHq`Fsyf$PH`^!TfSFpUi zyuuf#U@d6-=pjGscDwR1i}m<}=;1>7X!M)`M@6XI74$pY<P&kVkNkDBB6fQeF*|W%UBK-q50<0oTyDER(RFh}bhD7% z`ARfU8!8P}2JnBL2lK*k$QddRxhtF~cA+GVgt#~@C*(T<6~S^{3+lsd(nwNY-Dw9Y|h;&*vmA+N*l^`f74xdXy? zX>Gz=Zg+bTT{nu%6?TQ4Z0)oO$g7z>`YKhKe|`iiL4d16q=bU@(v$ z2$z>*0_pPW@nCVzXIbdr!#4*Xzd0~~>spOZx7nl?6Hd3Ys|hETfU0U|<>gIgcYRLj z_lA64uRBx`aQd8~d}s1B89w@tpThFm6b;umR-+nS%I<85XhI2=iEv$zL-Eb4igcXN zN|V{J(^DSuxq=R7z#l}JBqp;SzdV^uigo96*vq0-4QyiWu+ODG$@HQ$Itkm|Zl^0B zD@{Rrxy#K5JZvKI--MFS13}afhSyUO@K^YKj`9kObNqT3tUbdRU$1;FtgiV2cCXhP zz>wA%@&+r)9ey+pPQTlcU+&Apu(7+Md?MsR2ItoWYO8{?QK}ASC|nUhX_Qt*BD0;y z!A4(s4*Mrq9jR}OhVgfZ9)xHm!ISUsMPA9F@SDw?M|-1It$+GpyB1+M|UH} z2NURNx~;&5d5JOoNu$T-+io@xK{wUya72%W^mtfpcZJ(rho%RYZ{_{J${(OhS?y-B&$YEqy9>Uv=upL7%dZY3GdT;sP zbSK^EwAiZhe-p^b`z%%h?K1?}cvnkH?FI!Iuj2&egOZ(>$Nque^Jp0lLmyUU@>!M1 z$LdIzqal`J>S8=>)b1{xH0fe=6%M;U><+ozcyHnfxEulMD)hdH3p(*0f_H^{(Sj|g zvu+XE7`S`g4u>n?3xqrv#j*iGqS?XkT?ZWHK2NA3zXB`mDp45aS02gnDbh?9B%W`-F0guDy4Fy9*dDYce2+U3Gr2QH7bE1=?zgb_1Wij2}g28gC7-6i@`jOOpyS>8gN3FyR z(G~LJH|cr*lUPAJxdIQNy(c}n0`IEY$5kg);7jCKZ0l|s_-Z;jrfw@Rv&EOZ-Bw^0 z?rX1)Cr<;bM(8EG9Re#vbg2JNZ|Bk@N4C`QzP!Z(5IYu#i!@tWdGei$E3iGDhvYjp zeq4rCDIX`@t!a0)s=LSb-CYTZJ)eOkdzO3zJ^?$nux5q$MMP#+b#+!{I(x9?uCA`i z^NtfI9{-3lyMUeroV~LP=)z?K%bOm9F}wLIjne@V#2PxcOJ*%t*^%`Je&AYGcj(#V2RVE#&@ zTu6cWD{U^BV*W~V_DBo!SK8Ex zCdqqUd+3+0zZnr%@Xtq?+9q(FIr&9IG6yL(7h* z9d6geDs7jZs+iSNl8@7{z<^kbd8-ta3xivec+gFSuWNB*@cfpxr=B-NRj;Gv`8|u~ zAhfCB@ATB{af(EH)Rb2@ezOC#`O$;6`IWEbquabUL3Z}fCaJN(1$kOlMccNCSqO*O zWdU_rcCF%jO8-GB5R*9N<%PNK=)q>u3;=^uPnP4zikod;D-tu;0po*wuJmA>VYU*j zyWH51l|;QeJSLqPeSwNpr89w>9id$_XC}6?!&PWO3_kZQh)(U9t9pHV35f97^Cyp< znTc@qPn*{oW?6|{ovjb2Q@K`oZ`GeUP6q$c3*fOyLug>s_TzJ4^U#&Oq${VxuzbHRm ztV@NFiT)cVX`aUby??iUG3tu%tN2LrgepR zz?9WtT!bQ!qB^#a*Qn508UrUSq9&{I+E>0z>Kt9#HA(zQj~dCTt7FgXT#QV?aY~VS z$cidVfVp`L_i>g!l~pgyRVb@-IyJ?wZpxeUnknw*_nx+>HJqOA&Z6*~2=^5oNJEg0 zagK7Bxw6U3@3J*SOwXP2$j{Q_?b>6XZ#+oHpvl{`P8*{hTlQgxO?Q0|qb46U*%98z zjzaq46_H9_cMSx}^pFYoeE&GplMW-GeWwpP<5SKUm4J72p;l$J-rSt#OTu!Jy%QA=r_S);cs}yDb`1TJH5WUmc*Su#M}w36XH>q}sZHC!bW-wZ%M6K5vt6q&vvc zlckhIj(`e}j9e|Pp8+QUv3ExUn4{YJ*cVOZaDxWOjM(a39V9>k<9x@-KK=$1D_2G$96qPr?~aZyABOEg)Lba)3y0I^CLh9I|) zBJ~q-L9)w~o$c;5t8!0o^=!ZiG4z9~vGQ1(w!Ks6$Rt4% z%%)Q3FsFQish3ymxAJ;)TPsf=jz=D+-$&Y0sx%LVxaFY7fq^Coq5*Er*d=x9(<(#i zsEM=+T$zJ916!*M1Jrg;x>E(UeO_L^^M75TQI}) zqk~Oq@=>r3bBDN<@26|k?Y(u{PZm%jGz*-W)dqqTvSdH;I=`nTHf`^fQ{su@@NHO~+QGP8h3Nt& z{|>Bex`3{;wX;P&Ocs+981`(h+NMl0pA2L$S%oR-TZhYJ0Ta@PO&}Dk)4%n1OjltW z;u99Yc1pirIuf63$F@28j*y=-;51+X{ma6vh@L)1C?>z^@J6irx+9FE?zt2W)839| zR!0u#R9Huu%N!I~Wno-YLFLk<1jKHR2W`XJc7gRgP;TdfV?DRA4htiT6dxI=#VibG z7msrw9T|j@+8}Tsr`8E(-Jl4n3SNY;nxt(}v{BuFHm$dE>*SM47`qOZJr}@{K2cPZ zmyR}IjB)1DIC6koD_3KM^m&Q;Pyx@$`Xj5P%%f>0<B{-O!_b$Nb$hU)?#RZf7zC` zq;^tZSeLyFb(biTu)ypRhEV`GV|Q>9X``O4-}}us{=?zwfzY%rZu0`nT+vDp`6pEW z=IUyq`Z$q5_(-B&qoQ@${pxjo;!m5Oz0_AN_`W2BIDnnXnSN@R$TknxMlb(c)#`t1DO ziW0Y%a46tIDh}ae?_K$>@+}|V0Vop!rUaYI~;`H=u{cXT|7vvelE@+yNRl?ORVf;c(ePM$u1uxz_e)jE?6*$Q^PhYLRdGzX=r!Of>swMK{ zrEq3nfy}e|&T0H)nFJzQ^wOD;C zjy{@ooS`LoI>2+0Q=;km87X6`)@w`oHh&bQ$9}&t>dhEcEs6 zN=x;DYX=X^d)+6)LeWGyNYyfl(#(zoBk_(wrtqnOIyVz4{DN9wQ{roU?eBxXg_1?CyR8ymrasYF5v_q zg9D%?V}}pz<@udnR)7Zcut>?1mXl&;XEytZNQ{E__$^~3rOlZ1akqXFR+3RIhY%dO zxvCNQ=}7&f2kYJXNxYeZ>Z$-vXC!?Ykw1>qKidD>JM)tzK~bkLD+Ex4v>g^dV}3^a zf4Basse`f#NKWfq7VQfjyU?Ru`5g+b2`jFNen_e^s9U$!v0NLMZum>I9@m%lm*fe1?UL{B1%-Y%_x8E5v-ic*Eb=IMlj?0$7 zt*Vc!U;E9Pt{_#X5C^H5Nc|E>>QuIgpstaL5`LYpUGelbfcubw=5@%qinr>i%w z6bw%$o(OEcD+#l%3ZDUnw{TeeTR|Qd0G`u44IIh*a0%Y4HNIQxaTIrl_iv&UIWBZ% z6hw~j(=PsYs=>dLG%=lWV$6ZC@i=Mu&T0Pom%+KpDx&*j|MpIm0tlu;0A^`#pjxVhc{L)<=kBIJzi+Fu0;_q`_ zpYW%Mudn4K$!|6vITg-Dy6}z1sfY&LHbIux?s(T^0wTmV7uvM0kmk#a6v^i1{D&}j zR{r|qtDE%(0Qu0E3#6rU(k}j5MDe7>DO(CG*~9*76Y~0fd7q&37$Kqw5Zi%y79F3Q zKS8)Biv=P`X?hT1xBf=8MDMaRJ{btxoUsBz0k_>5MQvdqY7;XQ0A z@5$69G0AcZGPM)_N9rm()BVoxMDYR(+G+@cLU8+dA(NF6(~wcRZQ?*;SUOJWBa&I+ zF)oRSazIp?6j?bBzz3%-@D&d%raKJA_pVHeY>;ATF=mVW5EBO`i9gDS%}Q!L7e|#R zk7z#(>`$y*M$|@_F(8ft!wN5<)P`K%6{k8<1<7M7TdczJkmJ(?P|F}rBF9b%$eT~Lyl!SE<7A?|o7n@Caer#V zw6jNul#AAh+A<7_$tDL%i}5{+s}RIOZZaZdqMDP=go+Q6dh8Qo(C!&1wUYZWQu$5! zgI{3*peGzlgzRAm4Oy5tF*fwsdeTK}#Td)sfv!l7&b!!ZWg)kHlo0 zi@BgEvY-lxW)!>@CRrV3^r^LkZ1w=jpF17Ua>?Z^RIZ)BqsE7(9-9J>vjxzQ*wW}m zn#J5`fysr43&iLhEhM`|+2DQy7j|z}a-oS!2->(h^Y6R_mB5LdyC8kx?G@HX6VhA+ zDZ*@I6bd|_;3X> zpF6tv(Fah)9a~_2%{Xo1Ifx0tU=oa?ltEHo`Lf{t2(*b z3ABmIlt5o}vJpE@a@cM^s{Ze{fM)4y@Wx4r`=LQ480fSg#*r3A4FLNsq#hG_TSka% zP)}kLz9&*TQ@&RsMM7;@LlXqEra<-2T5caOB8agg1c~aV2?57N31!Gg#&B$10tlb$=&yM*)#td9K+B*(|yVfU^cu#C< zis2O9B@O1ZN~rxq)8^W09~;|_vXk3ERgveQxh7YwuYX{{L-46loyHmN3vPEY3($g; ze>Ou~+ciREj3=-m;yfLlHr7J1Yv|ONxOqV8iwqO(SQ>%%iF3>xPQb*)?xcV1w^dF>WGC7J61Y#DO`8Z9qh#9V!F=u z^?(|>VLYIQ?C{>5Nl~2v?g4#xI8{HGC<$LZn7I)C{Q1)*4u=Bl`Sa!gn%WuDo2%R4 zhd0-B72W1~NEIDjKA?(Y<6wPyyh5KtQ}vre>6p}hdcYK-1?6 zu6IQs)28;4=e9UM3N*fg5HwttyLK|9tq}z*%OeuXa_eB*z%LV&9^LfQ>(jBW(aB|M zb_}h6KsL2{gI9L*#0sp#>c{fp)^{Ip`je_2j75X{v#LY9FFIB^j60)w{#uRk-!{>u zf1hbSB=z2Bq2vyr`?yTOqYVC!!#1|D3Jd??tOVkwfQSG!qb;)phYbftIau08s?@of zH2igkm0MgvKi4A_Fx4uuY;Lmp!k3q~SJ{(iPal2vMlL)eI*$wh3D-%GWuJ@%o#?Z? zBVl(~JfMc&R5vn~d9&HO)D~CJZ|ac>y4maC)?~^8F>koXV=cSxvZZe)%mI zwVg$=IQwF*V?pgi?&!AGB)Nn~Iyi5N!d|!;AL5=tW{-ss-HEg$NCX$O!5kLC?!#3= zbX>s3=^V!Y&#Wq(^K&>iDy8d0ru_y3%+lS#tn); zr69CdE(>$UOJ%cl?t%E#H_zWZ`?7Zev*IYgF$f7V0TTaP#;6)Su||>SPZnouw7JLN;s>t5Yp>r)+0PHH)`LVP_9{%#hK zD|70ey^eVybg`!$8U0E<0T*;hTnQ8yl3w-oQ0FKzf(hm9)l-)T%k;>^Z=I#$`aD>aM|-z8duBss!c0>(#&Tg#il?^cno~6lv@=q}KszkU5-|JuE>=G0 z3h%OPg|Xx5R1 z+ZJKJ{F62G>}RY7*_^wV;_2pmw0V0gx5(Sg?z14V!0!NafT4*3TneDXjIB+jc5*#w zg6>7iVuQ#%fZ(?A?ai&CpW+8p(W}=FsG{Gc2dkLO;ng4KKzefSqeCc43-0F1m=v3e z$r}1TjMX6f+@fG4%i962yKgN9$r8|$7`6-CqUxN0pKkq!Q$iplTu74ui}sG|u6NRi zuPKB0R=_V|zmEL5dCT2<@QsG}qTzh`2^!3-C2575UDFK5 zCP}(nRz+#g62@AYIWxVaGFAmML*mE%%rp_fLUMgO0Yh{tu4Cdbat8nvx44AF&Hnc@ zo|K>8lM;XMbAC=vzW-PG!~XqF_xtzxEzkWaKi~iR&riPpx093q`Sb2ee)Z4&G4JKM z-{R-RfBpRA#ebZf{L7#4NB6IP?$7v}rcQoaKL4Y?JURLAlas%d_uW7FPX7G`KmBvx zchCKUeq%5Fb6@bMv>Wu_QQvR+_uY5${a^7zn^*l;zu`GrAO6WR^6#(tkumiD{+Z|g zW_5D%hkWo)ziZ=_VSUYyj-h+-KY#hNlfUoY%dfsZ8Qbo2zxeKFC;$78+XwsS{txs} B$>sn6 literal 0 HcmV?d00001 diff --git a/is_prime/lib/Cargo.toml b/is_prime/lib/Cargo.toml new file mode 100644 index 000000000..11f9527b7 --- /dev/null +++ b/is_prime/lib/Cargo.toml @@ -0,0 +1,7 @@ +[package] +name = "fibonacci-lib" +version = "0.1.0" +edition = "2021" + +[dependencies] +alloy-sol-types = { workspace = true } diff --git a/is_prime/lib/src/lib.rs b/is_prime/lib/src/lib.rs new file mode 100644 index 000000000..b60a04e05 --- /dev/null +++ b/is_prime/lib/src/lib.rs @@ -0,0 +1,24 @@ +use alloy_sol_types::sol; + +sol! { + /// The public values encoded as a struct that can be easily deserialized inside Solidity. + struct PublicValuesStruct { + uint32 n; + uint32 cnt_primes; + } +} + +pub fn is_prime(n: u32) -> bool { + if n < 2 { + return false; + } + let mut i = 2; + while i * i <= n { + if n % i == 0 { + return false; + } + i += 1; + } + + return true; +} diff --git a/is_prime/program/Cargo.lock b/is_prime/program/Cargo.lock new file mode 100644 index 000000000..dd66e5b9a --- /dev/null +++ b/is_prime/program/Cargo.lock @@ -0,0 +1,1486 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "alloy-primitives" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccb3ead547f4532bc8af961649942f0b9c16ee9226e26caa3f38420651cc0bf4" +dependencies = [ + "alloy-rlp", + "bytes", + "cfg-if", + "const-hex", + "derive_more", + "hex-literal", + "itoa", + "k256", + "keccak-asm", + "proptest", + "rand", + "ruint", + "serde", + "tiny-keccak", +] + +[[package]] +name = "alloy-rlp" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a43b18702501396fa9bcdeecd533bc85fac75150d308fc0f6800a01e6234a003" +dependencies = [ + "arrayvec", + "bytes", +] + +[[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", + "alloy-sol-macro-input", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[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", + "const-hex", + "heck", + "indexmap", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.72", + "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.72", + "syn-solidity", +] + +[[package]] +name = "alloy-sol-types" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a91ca40fa20793ae9c3841b83e74569d1cc9af29a2f5237314fd3452d51e38c7" +dependencies = [ + "alloy-primitives", + "alloy-sol-macro", + "const-hex", + "serde", +] + +[[package]] +name = "anyhow" +version = "1.0.86" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" + +[[package]] +name = "ark-ff" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b3235cc41ee7a12aaaf2c575a2ad7b46713a8a50bda2fc3b003a04845c05dd6" +dependencies = [ + "ark-ff-asm 0.3.0", + "ark-ff-macros 0.3.0", + "ark-serialize 0.3.0", + "ark-std 0.3.0", + "derivative", + "num-bigint", + "num-traits", + "paste", + "rustc_version 0.3.3", + "zeroize", +] + +[[package]] +name = "ark-ff" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec847af850f44ad29048935519032c33da8aa03340876d351dfab5660d2966ba" +dependencies = [ + "ark-ff-asm 0.4.2", + "ark-ff-macros 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "derivative", + "digest 0.10.7", + "itertools", + "num-bigint", + "num-traits", + "paste", + "rustc_version 0.4.0", + "zeroize", +] + +[[package]] +name = "ark-ff-asm" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db02d390bf6643fb404d3d22d31aee1c4bc4459600aef9113833d17e786c6e44" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-ff-asm" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ed4aa4fe255d0bc6d79373f7e31d2ea147bcf486cba1be5ba7ea85abdb92348" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-ff-macros" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db2fd794a08ccb318058009eefdf15bcaaaaf6f8161eb3345f907222bac38b20" +dependencies = [ + "num-bigint", + "num-traits", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-ff-macros" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" +dependencies = [ + "num-bigint", + "num-traits", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-serialize" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d6c2b318ee6e10f8c2853e73a83adc0ccb88995aa978d8a3408d492ab2ee671" +dependencies = [ + "ark-std 0.3.0", + "digest 0.9.0", +] + +[[package]] +name = "ark-serialize" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" +dependencies = [ + "ark-std 0.4.0", + "digest 0.10.7", + "num-bigint", +] + +[[package]] +name = "ark-std" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1df2c09229cbc5a028b1d70e00fdb2acee28b1055dfb5ca73eea49c5a25c4e7c" +dependencies = [ + "num-traits", + "rand", +] + +[[package]] +name = "ark-std" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" +dependencies = [ + "num-traits", + "rand", +] + +[[package]] +name = "arrayvec" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" + +[[package]] +name = "auto_impl" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "autocfg" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" + +[[package]] +name = "base16ct" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" + +[[package]] +name = "base64ct" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" + +[[package]] +name = "bincode" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" +dependencies = [ + "serde", +] + +[[package]] +name = "bit-set" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +dependencies = [ + "bit-vec", +] + +[[package]] +name = "bit-vec" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" + +[[package]] +name = "bitflags" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" + +[[package]] +name = "bitvec" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "byte-slice-cast" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a12916984aab3fa6e39d655a33e09c0071eb36d6ab3aea5c2d78551f1df6d952" + +[[package]] +name = "cc" +version = "1.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2aba8f4e9906c7ce3c73463f62a7f0c65183ada1a2d47e397cc8810827f9694f" + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "const-hex" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94fb8a24a26d37e1ffd45343323dc9fe6654ceea44c12f2fcb3d7ac29e610bc6" +dependencies = [ + "cfg-if", + "cpufeatures", + "hex", + "proptest", + "serde", +] + +[[package]] +name = "const-oid" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + +[[package]] +name = "cpufeatures" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" +dependencies = [ + "libc", +] + +[[package]] +name = "crunchy" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" + +[[package]] +name = "crypto-bigint" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" +dependencies = [ + "generic-array", + "rand_core", + "subtle", + "zeroize", +] + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "der" +version = "0.7.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" +dependencies = [ + "const-oid", + "zeroize", +] + +[[package]] +name = "derivative" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "derive_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.0", + "syn 2.0.72", +] + +[[package]] +name = "digest" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" +dependencies = [ + "generic-array", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "const-oid", + "crypto-common", + "subtle", +] + +[[package]] +name = "dunce" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" + +[[package]] +name = "ecdsa" +version = "0.16.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" +dependencies = [ + "der", + "digest 0.10.7", + "elliptic-curve", + "rfc6979", + "signature", + "spki", +] + +[[package]] +name = "either" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" + +[[package]] +name = "elliptic-curve" +version = "0.13.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" +dependencies = [ + "base16ct", + "crypto-bigint", + "digest 0.10.7", + "ff", + "generic-array", + "group", + "pkcs8", + "rand_core", + "sec1", + "subtle", + "zeroize", +] + +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "errno" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" +dependencies = [ + "libc", + "windows-sys", +] + +[[package]] +name = "fastrand" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" + +[[package]] +name = "fastrlp" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "139834ddba373bbdd213dffe02c8d110508dcf1726c2be27e8d1f7d7e1856418" +dependencies = [ + "arrayvec", + "auto_impl", + "bytes", +] + +[[package]] +name = "ff" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" +dependencies = [ + "rand_core", + "subtle", +] + +[[package]] +name = "fibonacci-program" +version = "0.1.0" +dependencies = [ + "alloy-sol-types", + "sp1-zkvm", +] + +[[package]] +name = "fixed-hash" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" +dependencies = [ + "byteorder", + "rand", + "rustc-hex", + "static_assertions", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", + "zeroize", +] + +[[package]] +name = "getrandom" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +dependencies = [ + "cfg-if", + "libc", + "wasi", +] + +[[package]] +name = "group" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" +dependencies = [ + "ff", + "rand_core", + "subtle", +] + +[[package]] +name = "hashbrown" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "hex-literal" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" + +[[package]] +name = "hmac" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "impl-codec" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba6a270039626615617f3f36d15fc827041df3b78c439da2cadfa47455a77f2f" +dependencies = [ + "parity-scale-codec", +] + +[[package]] +name = "impl-trait-for-tuples" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "indexmap" +version = "2.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" +dependencies = [ + "equivalent", + "hashbrown", +] + +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" + +[[package]] +name = "k256" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "956ff9b67e26e1a6a866cb758f12c6f8746208489e3e4a4b5580802f2f0a587b" +dependencies = [ + "cfg-if", + "ecdsa", + "elliptic-curve", + "once_cell", + "sha2", +] + +[[package]] +name = "keccak-asm" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47a3633291834c4fbebf8673acbc1b04ec9d151418ff9b8e26dcd79129928758" +dependencies = [ + "digest 0.10.7", + "sha3-asm", +] + +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" + +[[package]] +name = "libc" +version = "0.2.155" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" + +[[package]] +name = "libm" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" + +[[package]] +name = "linux-raw-sys" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" + +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + +[[package]] +name = "num-bigint" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" +dependencies = [ + "num-integer", + "num-traits", +] + +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", + "libm", +] + +[[package]] +name = "once_cell" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" + +[[package]] +name = "parity-scale-codec" +version = "3.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "306800abfa29c7f16596b5970a588435e3d5b3149683d00c12b699cc19f895ee" +dependencies = [ + "arrayvec", + "bitvec", + "byte-slice-cast", + "impl-trait-for-tuples", + "parity-scale-codec-derive", + "serde", +] + +[[package]] +name = "parity-scale-codec-derive" +version = "3.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d830939c76d294956402033aee57a6da7b438f2294eb94864c37b0569053a42c" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "paste" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" + +[[package]] +name = "pest" +version = "2.7.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd53dff83f26735fdc1ca837098ccf133605d794cdae66acfc2bfac3ec809d95" +dependencies = [ + "memchr", + "thiserror", + "ucd-trie", +] + +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der", + "spki", +] + +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + +[[package]] +name = "primitive-types" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" +dependencies = [ + "fixed-hash", + "impl-codec", + "uint", +] + +[[package]] +name = "proc-macro-crate" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" +dependencies = [ + "toml_edit", +] + +[[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-macro2" +version = "1.0.86" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "proptest" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4c2511913b88df1637da85cc8d96ec8e43a3f8bb8ccb71ee1ac240d6f3df58d" +dependencies = [ + "bit-set", + "bit-vec", + "bitflags", + "lazy_static", + "num-traits", + "rand", + "rand_chacha", + "rand_xorshift", + "regex-syntax", + "rusty-fork", + "tempfile", + "unarray", +] + +[[package]] +name = "quick-error" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" + +[[package]] +name = "quote" +version = "1.0.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom", +] + +[[package]] +name = "rand_xorshift" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" +dependencies = [ + "rand_core", +] + +[[package]] +name = "regex-syntax" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" + +[[package]] +name = "rfc6979" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +dependencies = [ + "hmac", + "subtle", +] + +[[package]] +name = "rlp" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" +dependencies = [ + "bytes", + "rustc-hex", +] + +[[package]] +name = "ruint" +version = "1.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c3cc4c2511671f327125da14133d0c5c5d137f006a1017a16f557bc85b16286" +dependencies = [ + "alloy-rlp", + "ark-ff 0.3.0", + "ark-ff 0.4.2", + "bytes", + "fastrlp", + "num-bigint", + "num-traits", + "parity-scale-codec", + "primitive-types", + "proptest", + "rand", + "rlp", + "ruint-macro", + "serde", + "valuable", + "zeroize", +] + +[[package]] +name = "ruint-macro" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48fd7bd8a6377e15ad9d42a8ec25371b94ddc67abe7c8b9127bec79bebaaae18" + +[[package]] +name = "rustc-hex" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" + +[[package]] +name = "rustc_version" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" +dependencies = [ + "semver 0.11.0", +] + +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver 1.0.23", +] + +[[package]] +name = "rustix" +version = "0.38.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" +dependencies = [ + "bitflags", + "errno", + "libc", + "linux-raw-sys", + "windows-sys", +] + +[[package]] +name = "rusty-fork" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb3dcc6e454c328bb824492db107ab7c0ae8fcffe4ad210136ef014458c1bc4f" +dependencies = [ + "fnv", + "quick-error", + "tempfile", + "wait-timeout", +] + +[[package]] +name = "sec1" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" +dependencies = [ + "base16ct", + "der", + "generic-array", + "pkcs8", + "subtle", + "zeroize", +] + +[[package]] +name = "semver" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" +dependencies = [ + "semver-parser", +] + +[[package]] +name = "semver" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" + +[[package]] +name = "semver-parser" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" +dependencies = [ + "pest", +] + +[[package]] +name = "serde" +version = "1.0.204" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc76f558e0cbb2a839d37354c575f1dc3fdc6546b5be373ba43d95f231bf7c12" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.204" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0cd7e117be63d3c3678776753929474f3b04a43a080c744d6b0ae2a8c28e222" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "sha2" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.7", +] + +[[package]] +name = "sha3-asm" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9b57fd861253bff08bb1919e995f90ba8f4889de2726091c8876f3a4e823b40" +dependencies = [ + "cc", + "cfg-if", +] + +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "digest 0.10.7", + "rand_core", +] + +[[package]] +name = "sp1-lib" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de4c2cc40e1019faac8cdbe61172c7be09960cfe240c712be46df3795c53fce8" +dependencies = [ + "anyhow", + "bincode", + "cfg-if", + "serde", +] + +[[package]] +name = "sp1-zkvm" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b4490136e03f6fe931dc49559574bb6dbf5e6a86cae1f60dc3842d2b79905ed" +dependencies = [ + "bincode", + "cfg-if", + "getrandom", + "lazy_static", + "libm", + "once_cell", + "rand", + "serde", + "sha2", + "sp1-lib", +] + +[[package]] +name = "spki" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +dependencies = [ + "base64ct", + "der", +] + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.72" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc4b9b9bf2add8093d3f2c0204471e951b2285580335de42f9d2534f3ae7a8af" +dependencies = [ + "proc-macro2", + "quote", + "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.72", +] + +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + +[[package]] +name = "tempfile" +version = "3.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" +dependencies = [ + "cfg-if", + "fastrand", + "rustix", + "windows-sys", +] + +[[package]] +name = "thiserror" +version = "1.0.63" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.63" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "tiny-keccak" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +dependencies = [ + "crunchy", +] + +[[package]] +name = "toml_datetime" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4badfd56924ae69bcc9039335b2e017639ce3f9b001c393c1b2d1ef846ce2cbf" + +[[package]] +name = "toml_edit" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" +dependencies = [ + "indexmap", + "toml_datetime", + "winnow", +] + +[[package]] +name = "typenum" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" + +[[package]] +name = "ucd-trie" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" + +[[package]] +name = "uint" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76f64bba2c53b04fcab63c01a7d7427eadc821e3bc48c34dc9ba29c501164b52" +dependencies = [ + "byteorder", + "crunchy", + "hex", + "static_assertions", +] + +[[package]] +name = "unarray" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" + +[[package]] +name = "unicode-ident" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "wait-timeout" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6" +dependencies = [ + "libc", +] + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_gnullvm", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "winnow" +version = "0.5.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] + +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + +[[package]] +name = "zeroize" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] diff --git a/is_prime/program/Cargo.toml b/is_prime/program/Cargo.toml new file mode 100644 index 000000000..cf178d92a --- /dev/null +++ b/is_prime/program/Cargo.toml @@ -0,0 +1,9 @@ +[package] +version = "0.1.0" +name = "fibonacci-program" +edition = "2021" + +[dependencies] +alloy-sol-types = { workspace = true } +sp1-zkvm = "3.0.0-rc4" +fibonacci-lib = { path = "../lib" } diff --git a/is_prime/program/src/main.rs b/is_prime/program/src/main.rs new file mode 100644 index 000000000..26d003d65 --- /dev/null +++ b/is_prime/program/src/main.rs @@ -0,0 +1,33 @@ +//! A simple program that takes a number `n` as input, and writes the `n-1`th and `n`th fibonacci +//! number as an output. + +// These two lines are necessary for the program to properly compile. +// +// Under the hood, we wrap your main function with some extra code so that it behaves properly +// inside the zkVM. +#![no_main] +sp1_zkvm::entrypoint!(main); + +use alloy_sol_types::SolType; +use fibonacci_lib::{is_prime, PublicValuesStruct}; + +pub fn main() { + // Read an input to the program. + // + // Behind the scenes, this compiles down to a custom system call which handles reading inputs + // from the prover. + let n = sp1_zkvm::io::read::(); + + // Compute the n'th fibonacci number using a function from the workspace lib crate. + let mut cnt_primes = 0; + for i in 0..=n.into() { + cnt_primes += is_prime(i) as u32; + } + + // Encode the public values of the program. + let bytes = PublicValuesStruct::abi_encode(&PublicValuesStruct { n, cnt_primes }); + + // Commit to the public values of the program. The final proof will have a commitment to all the + // bytes that were committed to. + sp1_zkvm::io::commit_slice(&bytes); +} diff --git a/is_prime/rust-toolchain b/is_prime/rust-toolchain new file mode 100644 index 000000000..d9143e67a --- /dev/null +++ b/is_prime/rust-toolchain @@ -0,0 +1,3 @@ +[toolchain] +channel = "1.81.0" +components = ["llvm-tools", "rustc-dev"] \ No newline at end of file diff --git a/is_prime/script/Cargo.lock b/is_prime/script/Cargo.lock new file mode 100644 index 000000000..730721958 --- /dev/null +++ b/is_prime/script/Cargo.lock @@ -0,0 +1,5960 @@ +# This file is automatically @generated by Cargo. +# 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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b2e69442aa5628ea6951fa33e24efe8313f4321a91bd729fc2f75bdfc858570" +dependencies = [ + "num-bigint 0.3.3", + "num-integer", + "num-traits", +] + +[[package]] +name = "addr2line" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "aes" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures", +] + +[[package]] +name = "ahash" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" +dependencies = [ + "cfg-if", + "once_cell", + "version_check", + "zerocopy", +] + +[[package]] +name = "aho-corasick" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +dependencies = [ + "memchr", +] + +[[package]] +name = "allocator-api2" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" + +[[package]] +name = "alloy-primitives" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccb3ead547f4532bc8af961649942f0b9c16ee9226e26caa3f38420651cc0bf4" +dependencies = [ + "alloy-rlp", + "bytes", + "cfg-if", + "const-hex", + "derive_more", + "hex-literal", + "itoa", + "k256", + "keccak-asm", + "proptest", + "rand", + "ruint", + "serde", + "tiny-keccak", +] + +[[package]] +name = "alloy-rlp" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a43b18702501396fa9bcdeecd533bc85fac75150d308fc0f6800a01e6234a003" +dependencies = [ + "arrayvec", + "bytes", +] + +[[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", + "alloy-sol-macro-input", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[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", + "const-hex", + "heck", + "indexmap 2.2.6", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.72", + "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.72", + "syn-solidity", +] + +[[package]] +name = "alloy-sol-types" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a91ca40fa20793ae9c3841b83e74569d1cc9af29a2f5237314fd3452d51e38c7" +dependencies = [ + "alloy-primitives", + "alloy-sol-macro", + "const-hex", + "serde", +] + +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "ansi_term" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" +dependencies = [ + "winapi", +] + +[[package]] +name = "anstream" +version = "0.6.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is_terminal_polyfill", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b" + +[[package]] +name = "anstyle-parse" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c03a11a9034d92058ceb6ee011ce58af4a9bf61491aa7e1e59ecd24bd40d22d4" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad186efb764318d35165f1758e7dcef3b10628e26d41a44bc5550652e6804391" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19" +dependencies = [ + "anstyle", + "windows-sys 0.52.0", +] + +[[package]] +name = "anyhow" +version = "1.0.86" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" + +[[package]] +name = "ark-ff" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b3235cc41ee7a12aaaf2c575a2ad7b46713a8a50bda2fc3b003a04845c05dd6" +dependencies = [ + "ark-ff-asm 0.3.0", + "ark-ff-macros 0.3.0", + "ark-serialize 0.3.0", + "ark-std 0.3.0", + "derivative", + "num-bigint 0.4.6", + "num-traits", + "paste", + "rustc_version 0.3.3", + "zeroize", +] + +[[package]] +name = "ark-ff" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec847af850f44ad29048935519032c33da8aa03340876d351dfab5660d2966ba" +dependencies = [ + "ark-ff-asm 0.4.2", + "ark-ff-macros 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "derivative", + "digest 0.10.7", + "itertools 0.10.5", + "num-bigint 0.4.6", + "num-traits", + "paste", + "rustc_version 0.4.0", + "zeroize", +] + +[[package]] +name = "ark-ff-asm" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db02d390bf6643fb404d3d22d31aee1c4bc4459600aef9113833d17e786c6e44" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-ff-asm" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ed4aa4fe255d0bc6d79373f7e31d2ea147bcf486cba1be5ba7ea85abdb92348" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-ff-macros" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db2fd794a08ccb318058009eefdf15bcaaaaf6f8161eb3345f907222bac38b20" +dependencies = [ + "num-bigint 0.4.6", + "num-traits", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-ff-macros" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" +dependencies = [ + "num-bigint 0.4.6", + "num-traits", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-serialize" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d6c2b318ee6e10f8c2853e73a83adc0ccb88995aa978d8a3408d492ab2ee671" +dependencies = [ + "ark-std 0.3.0", + "digest 0.9.0", +] + +[[package]] +name = "ark-serialize" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" +dependencies = [ + "ark-std 0.4.0", + "digest 0.10.7", + "num-bigint 0.4.6", +] + +[[package]] +name = "ark-std" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1df2c09229cbc5a028b1d70e00fdb2acee28b1055dfb5ca73eea49c5a25c4e7c" +dependencies = [ + "num-traits", + "rand", +] + +[[package]] +name = "ark-std" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" +dependencies = [ + "num-traits", + "rand", +] + +[[package]] +name = "arrayref" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d151e35f61089500b617991b791fc8bfd237ae50cd5950803758a179b41e67a" + +[[package]] +name = "arrayvec" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" + +[[package]] +name = "async-trait" +version = "0.1.81" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[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.0", +] + +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + +[[package]] +name = "auto_impl" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "autocfg" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" + +[[package]] +name = "axum" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1236b4b292f6c4d6dc34604bb5120d85c3fe1d1aa596bd5cc52ca054d13e7b9e" +dependencies = [ + "async-trait", + "axum-core", + "bytes", + "futures-util", + "http 1.1.0", + "http-body 1.0.1", + "http-body-util", + "hyper 1.4.1", + "hyper-util", + "itoa", + "matchit", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "rustversion", + "serde", + "serde_json", + "serde_path_to_error", + "serde_urlencoded", + "sync_wrapper 0.1.2", + "tokio", + "tower", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "axum-core" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a15c63fd72d41492dc4f497196f5da1fb04fb7529e631d73630d1b491e47a2e3" +dependencies = [ + "async-trait", + "bytes", + "futures-util", + "http 1.1.0", + "http-body 1.0.1", + "http-body-util", + "mime", + "pin-project-lite", + "rustversion", + "sync_wrapper 0.1.2", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "backtrace" +version = "0.3.73" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a" +dependencies = [ + "addr2line", + "cc", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", + "serde", +] + +[[package]] +name = "base16ct" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" + +[[package]] +name = "base64" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + +[[package]] +name = "base64" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "base64ct" +version = "1.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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" +dependencies = [ + "serde", +] + +[[package]] +name = "bindgen" +version = "0.69.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a00dc851838a2120612785d195287475a3ac45514741da670b735818822129a0" +dependencies = [ + "bitflags 2.6.0", + "cexpr", + "clang-sys", + "itertools 0.12.1", + "lazy_static", + "lazycell", + "log", + "prettyplease", + "proc-macro2", + "quote", + "regex", + "rustc-hash", + "shlex", + "syn 2.0.72", + "which", +] + +[[package]] +name = "bit-set" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +dependencies = [ + "bit-vec", +] + +[[package]] +name = "bit-vec" +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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" + +[[package]] +name = "bitvec" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + +[[package]] +name = "blake2" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "blake2b_simd" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780" +dependencies = [ + "arrayref", + "arrayvec", + "constant_time_eq", +] + +[[package]] +name = "blake3" +version = "1.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9ec96fe9a81b5e365f9db71fe00edc4fe4ca2cc7dcb7861f0603012a7caa210" +dependencies = [ + "arrayref", + "arrayvec", + "cc", + "cfg-if", + "constant_time_eq", + "rayon-core", +] + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array 0.14.7", +] + +[[package]] +name = "bls12_381" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3c196a77437e7cc2fb515ce413a6401291578b5afc8ecb29a3c7ab957f05941" +dependencies = [ + "ff 0.12.1", + "group 0.12.1", + "pairing", + "rand_core", + "subtle", +] + +[[package]] +name = "bs58" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" +dependencies = [ + "sha2", + "tinyvec", +] + +[[package]] +name = "bumpalo" +version = "3.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" + +[[package]] +name = "byte-slice-cast" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" + +[[package]] +name = "bytemuck" +version = "1.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b236fc92302c97ed75b38da1f4917b5cdda4984745740f153a5d3059e48d725e" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a12916984aab3fa6e39d655a33e09c0071eb36d6ab3aea5c2d78551f1df6d952" +dependencies = [ + "serde", +] + +[[package]] +name = "camino" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0ec6b951b160caa93cc0c7b209e5a3bff7aae9062213451ac99493cd844c239" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo-platform" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24b1f0365a6c6bb4020cd05806fd0d33c44d38046b8bd7f0e40814b9763cabfc" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo_metadata" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037" +dependencies = [ + "camino", + "cargo-platform", + "semver 1.0.23", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "cc" +version = "1.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2aba8f4e9906c7ce3c73463f62a7f0c65183ada1a2d47e397cc8810827f9694f" +dependencies = [ + "jobserver", + "libc", +] + +[[package]] +name = "cexpr" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" +dependencies = [ + "nom", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "chrono" +version = "0.4.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" +dependencies = [ + "android-tzdata", + "iana-time-zone", + "num-traits", + "serde", + "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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" +dependencies = [ + "glob", + "libc", + "libloading", +] + +[[package]] +name = "clap" +version = "4.5.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f6b81fb3c84f5563d509c59b5a48d935f689e993afa90fe39047f05adef9142" +dependencies = [ + "clap_builder", + "clap_derive", +] + +[[package]] +name = "clap_builder" +version = "4.5.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ca6706fd5224857d9ac5eb9355f6683563cc0541c7cd9d014043b57cbec78ac" +dependencies = [ + "anstream", + "anstyle", + "clap_lex", + "strsim", +] + +[[package]] +name = "clap_derive" +version = "4.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bac35c6dafb060fd4d275d9a4ffae97917c13a6327903a8be2153cd964f7085" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "clap_lex" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b82cf0babdbd58558212896d1a4272303a57bdb245c2bf1147185fb45640e70" + +[[package]] +name = "cobs" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67ba02a97a2bd10f4b59b25c7973101c79642302776489e030cd13cdab09ed15" + +[[package]] +name = "coins-bip32" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b6be4a5df2098cd811f3194f64ddb96c267606bffd9689ac7b0160097b01ad3" +dependencies = [ + "bs58", + "coins-core", + "digest 0.10.7", + "hmac", + "k256", + "serde", + "sha2", + "thiserror", +] + +[[package]] +name = "coins-bip39" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3db8fba409ce3dc04f7d804074039eb68b960b0829161f8e06c95fea3f122528" +dependencies = [ + "bitvec", + "coins-bip32", + "hmac", + "once_cell", + "pbkdf2 0.12.2", + "rand", + "sha2", + "thiserror", +] + +[[package]] +name = "coins-core" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5286a0843c21f8367f7be734f89df9b822e0321d8bcce8d6e735aadff7d74979" +dependencies = [ + "base64 0.21.7", + "bech32", + "bs58", + "digest 0.10.7", + "generic-array 0.14.7", + "hex", + "ripemd", + "serde", + "serde_derive", + "sha2", + "sha3", + "thiserror", +] + +[[package]] +name = "colorchoice" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422" + +[[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.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94fb8a24a26d37e1ffd45343323dc9fe6654ceea44c12f2fcb3d7ac29e610bc6" +dependencies = [ + "cfg-if", + "cpufeatures", + "hex", + "proptest", + "serde", +] + +[[package]] +name = "const-oid" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + +[[package]] +name = "constant_time_eq" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" + +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + +[[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.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" + +[[package]] +name = "cpufeatures" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" +dependencies = [ + "libc", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" + +[[package]] +name = "crunchy" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" + +[[package]] +name = "crypto-bigint" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" +dependencies = [ + "generic-array 0.14.7", + "rand_core", + "subtle", + "zeroize", +] + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array 0.14.7", + "typenum", +] + +[[package]] +name = "ctr" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" +dependencies = [ + "cipher", +] + +[[package]] +name = "curve25519-dalek" +version = "4.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" +dependencies = [ + "cfg-if", + "cpufeatures", + "curve25519-dalek-derive", + "fiat-crypto", + "rustc_version 0.4.0", + "subtle", + "zeroize", +] + +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "darling" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.72", +] + +[[package]] +name = "darling_macro" +version = "0.20.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" +dependencies = [ + "darling_core", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "der" +version = "0.7.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" +dependencies = [ + "const-oid", + "zeroize", +] + +[[package]] +name = "deranged" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" +dependencies = [ + "powerfmt", + "serde", +] + +[[package]] +name = "derivative" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "derive_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.0", + "syn 2.0.72", +] + +[[package]] +name = "digest" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" +dependencies = [ + "generic-array 0.14.7", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "const-oid", + "crypto-common", + "subtle", +] + +[[package]] +name = "dirs" +version = "5.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" +dependencies = [ + "dirs-sys", +] + +[[package]] +name = "dirs-sys" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" +dependencies = [ + "libc", + "option-ext", + "redox_users", + "windows-sys 0.48.0", +] + +[[package]] +name = "downcast-rs" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" + +[[package]] +name = "dunce" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" + +[[package]] +name = "ecdsa" +version = "0.16.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" +dependencies = [ + "der", + "digest 0.10.7", + "elliptic-curve", + "rfc6979", + "signature", + "spki", +] + +[[package]] +name = "either" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" + +[[package]] +name = "elf" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4445909572dbd556c457c849c4ca58623d84b27c8fff1e74b0b4227d8b90d17b" + +[[package]] +name = "elliptic-curve" +version = "0.13.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" +dependencies = [ + "base16ct", + "crypto-bigint", + "digest 0.10.7", + "ff 0.13.0", + "generic-array 0.14.7", + "group 0.13.0", + "pkcs8", + "rand_core", + "sec1", + "subtle", + "zeroize", +] + +[[package]] +name = "embedded-io" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef1a6892d9eef45c8fa6b9e0086428a2cca8491aca8f787c534a3d6d0bcb3ced" + +[[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.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" +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", + "rlp", + "serde", + "sha3", + "zeroize", +] + +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "errno" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "eth-keystore" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fda3bf123be441da5260717e0661c25a2fd9cb2b2c1d20bf2e05580047158ab" +dependencies = [ + "aes", + "ctr", + "digest 0.10.7", + "hex", + "hmac", + "pbkdf2 0.11.0", + "rand", + "scrypt", + "serde", + "serde_json", + "sha2", + "sha3", + "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.72", + "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.72", +] + +[[package]] +name = "ethers-core" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82d80cc6ad30b14a48ab786523af33b37f28a8623fc06afd55324816ef18fb1f" +dependencies = [ + "arrayvec", + "bytes", + "cargo_metadata", + "chrono", + "const-hex", + "elliptic-curve", + "ethabi", + "generic-array 0.14.7", + "k256", + "num_enum 0.7.2", + "once_cell", + "open-fastrlp", + "rand", + "rlp", + "serde", + "serde_json", + "strum", + "syn 2.0.72", + "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", + "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", + "sha2", + "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 = "fastrand" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" + +[[package]] +name = "fastrlp" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "139834ddba373bbdd213dffe02c8d110508dcf1726c2be27e8d1f7d7e1856418" +dependencies = [ + "arrayvec", + "auto_impl", + "bytes", +] + +[[package]] +name = "ff" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d013fc25338cc558c5c2cfbad646908fb23591e2404481826742b651c9af7160" +dependencies = [ + "bitvec", + "rand_core", + "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", + "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-script" +version = "0.1.0" +dependencies = [ + "alloy-sol-types", + "clap", + "hex", + "serde", + "serde_json", + "sp1-helper", + "sp1-sdk", + "tracing", +] + +[[package]] +name = "fixed-hash" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" +dependencies = [ + "byteorder", + "rand", + "rustc-hex", + "static_assertions", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + +[[package]] +name = "form_urlencoded" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + +[[package]] +name = "futures" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" + +[[package]] +name = "futures-executor" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" + +[[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.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "futures-sink" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" + +[[package]] +name = "futures-task" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" + +[[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.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d758ba1b47b00caf47f24925c0074ecb20d6dfcffe7f6d53395c0465674841a" + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", + "zeroize", +] + +[[package]] +name = "generic-array" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96512db27971c2c3eece70a1e106fbe6c87760234e31e8f7e5634912fe52794a" +dependencies = [ + "serde", + "typenum", +] + +[[package]] +name = "getrandom" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" +dependencies = [ + "cfg-if", + "libc", + "wasi", +] + +[[package]] +name = "gimli" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd" + +[[package]] +name = "git2" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b903b73e45dc0c6c596f2d37eccece7c1c8bb6e4407b001096387c63d0d93724" +dependencies = [ + "bitflags 2.6.0", + "libc", + "libgit2-sys", + "log", + "url", +] + +[[package]] +name = "glob" +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 = "group" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7" +dependencies = [ + "ff 0.12.1", + "memuse", + "rand_core", + "subtle", +] + +[[package]] +name = "group" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" +dependencies = [ + "ff 0.13.0", + "rand_core", + "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.2.6", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "h2" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa82e28a107a8cc405f0839610bdc9b15f1e25ec7d696aa5cf173edbcb1486ab" +dependencies = [ + "atomic-waker", + "bytes", + "fnv", + "futures-core", + "futures-sink", + "http 1.1.0", + "indexmap 2.2.6", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "halo2" +version = "0.1.0-beta.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a23c779b38253fe1538102da44ad5bd5378495a61d2c4ee18d64eaa61ae5995" +dependencies = [ + "halo2_proofs", +] + +[[package]] +name = "halo2_proofs" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e925780549adee8364c7f2b685c753f6f3df23bde520c67416e93bf615933760" +dependencies = [ + "blake2b_simd", + "ff 0.12.1", + "group 0.12.1", + "pasta_curves 0.4.1", + "rand_core", + "rayon", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "hashbrown" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +dependencies = [ + "ahash", + "allocator-api2", + "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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hermit-abi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "hex-literal" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" + +[[package]] +name = "hmac" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "home" +version = "0.5.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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" +dependencies = [ + "bytes", + "http 0.2.12", + "pin-project-lite", +] + +[[package]] +name = "http-body" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" +dependencies = [ + "bytes", + "http 1.1.0", +] + +[[package]] +name = "http-body-util" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" +dependencies = [ + "bytes", + "futures-util", + "http 1.1.0", + "http-body 1.0.1", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9" + +[[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.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a152ddd61dfaec7273fe8419ab357f33aee0d914c5f4efbf0d96fa749eea5ec9" +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.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "h2 0.4.5", + "http 1.1.0", + "http-body 1.0.1", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "smallvec", + "tokio", + "want", +] + +[[package]] +name = "hyper-rustls" +version = "0.27.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ee4be2c948921a1a5320b629c4193916ed787a7f7f293fd3f7f5a6c9de74155" +dependencies = [ + "futures-util", + "http 1.1.0", + "hyper 1.4.1", + "hyper-util", + "rustls", + "rustls-pki-types", + "tokio", + "tokio-rustls", + "tower-service", + "webpki-roots", +] + +[[package]] +name = "hyper-tls" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" +dependencies = [ + "bytes", + "http-body-util", + "hyper 1.4.1", + "hyper-util", + "native-tls", + "tokio", + "tokio-native-tls", + "tower-service", +] + +[[package]] +name = "hyper-util" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ab92f4f49ee4fb4f997c784b7a2e0fa70050211e0b6a287f898c3c9785ca956" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "http 1.1.0", + "http-body 1.0.1", + "hyper 1.4.1", + "pin-project-lite", + "socket2", + "tokio", + "tower", + "tower-service", + "tracing", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "windows-core", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "idna" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "impl-codec" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba6a270039626615617f3f36d15fc827041df3b78c439da2cadfa47455a77f2f" +dependencies = [ + "parity-scale-codec", +] + +[[package]] +name = "impl-rlp" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f28220f89297a075ddc7245cd538076ee98b01f2a9c23a53a4f1105d5a322808" +dependencies = [ + "rlp", +] + +[[package]] +name = "impl-serde" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc88fc67028ae3db0c853baa36269d398d5f45b6982f95549ff5def78c935cd" +dependencies = [ + "serde", +] + +[[package]] +name = "impl-trait-for-tuples" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "indenter" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", + "serde", +] + +[[package]] +name = "indexmap" +version = "2.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" +dependencies = [ + "equivalent", + "hashbrown 0.14.5", + "serde", +] + +[[package]] +name = "indicatif" +version = "0.17.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "763a5a8f45087d6bcea4222e7b72c291a054edf80e4ef6efd2a4979878c7bea3" +dependencies = [ + "console", + "instant", + "number_prefix", + "portable-atomic", + "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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "ipnet" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" + +[[package]] +name = "is_terminal_polyfill" +version = "1.70.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800" + +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" + +[[package]] +name = "jobserver" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" +dependencies = [ + "libc", +] + +[[package]] +name = "js-sys" +version = "0.3.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" +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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a575df5f985fe1cd5b2b05664ff6accfc46559032b954529fd225a2168d27b0f" +dependencies = [ + "bitvec", + "bls12_381", + "ff 0.12.1", + "group 0.12.1", + "rand_core", + "subtle", +] + +[[package]] +name = "k256" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "956ff9b67e26e1a6a866cb758f12c6f8746208489e3e4a4b5580802f2f0a587b" +dependencies = [ + "cfg-if", + "ecdsa", + "elliptic-curve", + "once_cell", + "sha2", + "signature", +] + +[[package]] +name = "keccak" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" +dependencies = [ + "cpufeatures", +] + +[[package]] +name = "keccak-asm" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47a3633291834c4fbebf8673acbc1b04ec9d151418ff9b8e26dcd79129928758" +dependencies = [ + "digest 0.10.7", + "sha3-asm", +] + +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" +dependencies = [ + "spin 0.9.8", +] + +[[package]] +name = "lazycell" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" + +[[package]] +name = "libc" +version = "0.2.155" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" + +[[package]] +name = "libgit2-sys" +version = "0.17.0+1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10472326a8a6477c3c20a64547b0059e4b0d086869eee31e6d7da728a8eb7224" +dependencies = [ + "cc", + "libc", + "libz-sys", + "pkg-config", +] + +[[package]] +name = "libloading" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4979f22fdb869068da03c9f7528f8297c6fd2606bc3a4affe42e6a823fdb8da4" +dependencies = [ + "cfg-if", + "windows-targets 0.52.6", +] + +[[package]] +name = "libm" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" + +[[package]] +name = "libredox" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" +dependencies = [ + "bitflags 2.6.0", + "libc", +] + +[[package]] +name = "libz-sys" +version = "1.1.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c15da26e5af7e25c90b37a2d75cdbf940cf4a55316de9d84c679c9b8bfabf82e" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "linux-raw-sys" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" + +[[package]] +name = "lock_api" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" + +[[package]] +name = "matchers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +dependencies = [ + "regex-automata 0.1.10", +] + +[[package]] +name = "matchit" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" + +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + +[[package]] +name = "memuse" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2145869435ace5ea6ea3d35f59be559317ec9a0d04e1812d5f185a87b6d36f1a" + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + +[[package]] +name = "miniz_oxide" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08" +dependencies = [ + "adler", +] + +[[package]] +name = "mio" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4569e456d394deccd22ce1c1913e6ea0e54519f577285001215d33557431afe4" +dependencies = [ + "hermit-abi", + "libc", + "wasi", + "windows-sys 0.52.0", +] + +[[package]] +name = "native-tls" +version = "0.2.12" +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", +] + +[[package]] +name = "nohash-hasher" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451" + +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "ntapi" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4" +dependencies = [ + "winapi", +] + +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi", +] + +[[package]] +name = "num" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23" +dependencies = [ + "num-bigint 0.4.6", + "num-complex", + "num-integer", + "num-iter", + "num-rational", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f6f7833f2cbf2360a6cfd58cd41a53aa7a90bd4c202f5b1c7dd2ed73c57b2c3" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-bigint" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" +dependencies = [ + "num-integer", + "num-traits", +] + +[[package]] +name = "num-complex" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-iter" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" +dependencies = [ + "num-bigint 0.4.6", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", + "libm", +] + +[[package]] +name = "num_cpus" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "num_enum" +version = "0.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.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02339744ee7253741199f897151b38e72257d13802d4ee837285cc2990a90845" +dependencies = [ + "num_enum_derive 0.7.2", +] + +[[package]] +name = "num_enum_derive" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799" +dependencies = [ + "proc-macro-crate 1.3.1", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "num_enum_derive" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "681030a937600a36906c185595136d26abfebb4aa9c65701cefcaf8578bb982b" +dependencies = [ + "proc-macro-crate 3.1.0", + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "num_threads" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9" +dependencies = [ + "libc", +] + +[[package]] +name = "number_prefix" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" + +[[package]] +name = "object" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "081b846d1d56ddfc18fdf1a922e4f6e07a11768ea1b92dec44e42b72712ccfce" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" + +[[package]] +name = "oneshot" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e296cf87e61c9cfc1a61c3c63a0f7f286ed4554e0e22be84e8a38e1d264a2a29" + +[[package]] +name = "open-fastrlp" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "786393f80485445794f6043fd3138854dd109cc6c4bd1a6383db304c9ce9b9ce" +dependencies = [ + "arrayvec", + "auto_impl", + "bytes", + "ethereum-types", + "open-fastrlp-derive", +] + +[[package]] +name = "open-fastrlp-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "003b2be5c6c53c1cfeb0a238b8a1c3915cd410feb684457a36c10038f764bb1c" +dependencies = [ + "bytes", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "openssl" +version = "0.10.66" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1" +dependencies = [ + "bitflags 2.6.0", + "cfg-if", + "foreign-types", + "libc", + "once_cell", + "openssl-macros", + "openssl-sys", +] + +[[package]] +name = "openssl-macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[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.103" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "option-ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" + +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + +[[package]] +name = "p3-air" +version = "0.1.3-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45e909ef66fa5d77ff0fd3cb5af4b33b27fa6fb68d02b9b1e70edbc29383e565" +dependencies = [ + "p3-field", + "p3-matrix", +] + +[[package]] +name = "p3-baby-bear" +version = "0.1.3-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46965470aac1cddfe52f535424b59d52f2fffef0fdeb9dbed19da39b1d8f048a" +dependencies = [ + "num-bigint 0.4.6", + "p3-field", + "p3-mds", + "p3-poseidon2", + "p3-symmetric", + "rand", + "serde", +] + +[[package]] +name = "p3-blake3" +version = "0.1.3-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36ef32d6ea21dd5cf9fec8a31bf0c64e6ceee8901dbf50966b83a443093c2aba" +dependencies = [ + "blake3", + "p3-symmetric", +] + +[[package]] +name = "p3-bn254-fr" +version = "0.1.3-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e3edfca6be3b3109adf8e3330baec30c3fc5f9f4d63d27aaec1b471ca51ed67" +dependencies = [ + "ff 0.13.0", + "num-bigint 0.4.6", + "p3-field", + "p3-poseidon2", + "p3-symmetric", + "rand", + "serde", +] + +[[package]] +name = "p3-challenger" +version = "0.1.3-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6662ea899a5d848b60c699944491d72757873b5e1fd46798e4712f90a03a4e9" +dependencies = [ + "p3-field", + "p3-maybe-rayon", + "p3-symmetric", + "p3-util", + "tracing", +] + +[[package]] +name = "p3-commit" +version = "0.1.3-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc3563918b5cc44ef5280bf9b51753e70dc78802de25e3fb81ed6c94617ccb6e" +dependencies = [ + "itertools 0.12.1", + "p3-challenger", + "p3-field", + "p3-matrix", + "p3-util", + "serde", +] + +[[package]] +name = "p3-dft" +version = "0.1.3-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "510095701819d83c9509fe825bbf1ebfe50426ae75149df5fe1dcfd18261323a" +dependencies = [ + "p3-field", + "p3-matrix", + "p3-maybe-rayon", + "p3-util", + "tracing", +] + +[[package]] +name = "p3-field" +version = "0.1.3-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61f1977a0a65789f719aa824119c332c4676b000bdbfe94d312fb6244a70d601" +dependencies = [ + "itertools 0.12.1", + "num-bigint 0.4.6", + "num-traits", + "p3-util", + "rand", + "serde", +] + +[[package]] +name = "p3-fri" +version = "0.1.3-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c22ddb958f200d9289cc73ff68847b0167ca0c14557b791dd9e318f98c2d1b28" +dependencies = [ + "itertools 0.12.1", + "p3-challenger", + "p3-commit", + "p3-dft", + "p3-field", + "p3-interpolation", + "p3-matrix", + "p3-maybe-rayon", + "p3-util", + "serde", + "tracing", +] + +[[package]] +name = "p3-interpolation" +version = "0.1.3-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d032cda212f6b408d7d5b0b9a8270a9455acb93742fe55a0880d82be8e90e500" +dependencies = [ + "p3-field", + "p3-matrix", + "p3-util", +] + +[[package]] +name = "p3-keccak" +version = "0.1.3-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c56abdd5a8a780049d2f8e92cea1df57b55a2ef50a40d1103f2732f7a00e4b1" +dependencies = [ + "p3-symmetric", + "tiny-keccak", +] + +[[package]] +name = "p3-keccak-air" +version = "0.1.3-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8398f1694ccc38513df0b8cab5f9ef7325423f27cd9e4fa20bdc77d5079cf1b" +dependencies = [ + "p3-air", + "p3-field", + "p3-matrix", + "p3-maybe-rayon", + "p3-util", + "tracing", + "tracing-forest", + "tracing-subscriber", +] + +[[package]] +name = "p3-matrix" +version = "0.1.3-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d548ee0b834f8e2ebc5037073acd101a3b0ca41a2d1d28a15ba0ccd9059495b0" +dependencies = [ + "itertools 0.12.1", + "p3-field", + "p3-maybe-rayon", + "p3-util", + "rand", + "serde", + "tracing", +] + +[[package]] +name = "p3-maybe-rayon" +version = "0.1.3-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55f5575d3d61bedb3e05681abb0f36b8bb339d65aa395d50756bfa64e9cd3f46" +dependencies = [ + "rayon", +] + +[[package]] +name = "p3-mds" +version = "0.1.3-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a6e57ed310d59245f93e24ee805ea7aa16fc9c505551b76a15f5e50f29d177e" +dependencies = [ + "itertools 0.12.1", + "p3-dft", + "p3-field", + "p3-matrix", + "p3-symmetric", + "p3-util", + "rand", +] + +[[package]] +name = "p3-merkle-tree" +version = "0.1.3-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af46b41cba75d483ec8a553cbab1d2d794935ae3403d75394acfa4fb2c977cce" +dependencies = [ + "itertools 0.12.1", + "p3-commit", + "p3-field", + "p3-matrix", + "p3-maybe-rayon", + "p3-symmetric", + "p3-util", + "serde", + "tracing", +] + +[[package]] +name = "p3-poseidon2" +version = "0.1.3-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adaba6f14c197203530e233badce0ca1126ba3bf3c9ff766505b497bdad0bee1" +dependencies = [ + "gcd", + "p3-field", + "p3-mds", + "p3-symmetric", + "rand", +] + +[[package]] +name = "p3-symmetric" +version = "0.1.3-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57ecc4282566eb14f48be7707f6745c4dff6be664984d59ec0fb1849cd82b5c2" +dependencies = [ + "itertools 0.12.1", + "p3-field", + "serde", +] + +[[package]] +name = "p3-uni-stark" +version = "0.1.3-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1af5c038b22b058bf1d49fb1ea3dd6c240a3e46c3278fde5c444e0034f7ffe37" +dependencies = [ + "itertools 0.12.1", + "p3-air", + "p3-challenger", + "p3-commit", + "p3-dft", + "p3-field", + "p3-matrix", + "p3-maybe-rayon", + "p3-util", + "postcard", + "serde", + "tracing", + "tracing-forest", + "tracing-subscriber", +] + +[[package]] +name = "p3-util" +version = "0.1.3-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79f3fef0e00d9d7246385e758c4cd39b4efcbbcea31752471491ab502631385e" +dependencies = [ + "serde", +] + +[[package]] +name = "pairing" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "135590d8bdba2b31346f9cd1fb2a912329f5135e832a4f422942eb6ead8b6b3b" +dependencies = [ + "group 0.12.1", +] + +[[package]] +name = "parity-scale-codec" +version = "3.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "306800abfa29c7f16596b5970a588435e3d5b3149683d00c12b699cc19f895ee" +dependencies = [ + "arrayvec", + "bitvec", + "byte-slice-cast", + "impl-trait-for-tuples", + "parity-scale-codec-derive", + "serde", +] + +[[package]] +name = "parity-scale-codec-derive" +version = "3.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d830939c76d294956402033aee57a6da7b438f2294eb94864c37b0569053a42c" +dependencies = [ + "proc-macro-crate 3.1.0", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "parking_lot" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-targets 0.52.6", +] + +[[package]] +name = "pasta_curves" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cc65faf8e7313b4b1fbaa9f7ca917a0eed499a9663be71477f87993604341d8" +dependencies = [ + "blake2b_simd", + "ff 0.12.1", + "group 0.12.1", + "lazy_static", + "rand", + "static_assertions", + "subtle", +] + +[[package]] +name = "pasta_curves" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e57598f73cc7e1b2ac63c79c517b31a0877cd7c402cdcaa311b5208de7a095" +dependencies = [ + "blake2b_simd", + "ff 0.13.0", + "group 0.13.0", + "lazy_static", + "rand", + "static_assertions", + "subtle", +] + +[[package]] +name = "paste" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" + +[[package]] +name = "pbkdf2" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "pbkdf2" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" +dependencies = [ + "digest 0.10.7", + "hmac", +] + +[[package]] +name = "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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" + +[[package]] +name = "pest" +version = "2.7.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd53dff83f26735fdc1ca837098ccf133605d794cdae66acfc2bfac3ec809d95" +dependencies = [ + "memchr", + "thiserror", + "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.0", +] + +[[package]] +name = "pin-project" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der", + "spki", +] + +[[package]] +name = "pkg-config" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" + +[[package]] +name = "portable-atomic" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da544ee218f0d287a911e9c99a39a8c9bc8fcad3cb8db5959940044ecfc67265" + +[[package]] +name = "postcard" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a55c51ee6c0db07e68448e336cf8ea4131a620edefebf9893e759b2d793420f8" +dependencies = [ + "cobs", + "embedded-io", + "serde", +] + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + +[[package]] +name = "prettyplease" +version = "0.2.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f12335488a2f3b0a83b14edad48dca9879ce89b2edd10e80237e4e852dd645e" +dependencies = [ + "proc-macro2", + "syn 2.0.72", +] + +[[package]] +name = "primitive-types" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" +dependencies = [ + "fixed-hash", + "impl-codec", + "impl-rlp", + "impl-serde", + "scale-info", + "uint", +] + +[[package]] +name = "proc-macro-crate" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +dependencies = [ + "once_cell", + "toml_edit 0.19.15", +] + +[[package]] +name = "proc-macro-crate" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" +dependencies = [ + "toml_edit 0.21.1", +] + +[[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-macro2" +version = "1.0.86" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "proptest" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4c2511913b88df1637da85cc8d96ec8e43a3f8bb8ccb71ee1ac240d6f3df58d" +dependencies = [ + "bit-set", + "bit-vec", + "bitflags 2.6.0", + "lazy_static", + "num-traits", + "rand", + "rand_chacha", + "rand_xorshift", + "regex-syntax 0.8.4", + "rusty-fork", + "tempfile", + "unarray", +] + +[[package]] +name = "prost" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "deb1435c188b76130da55f17a466d252ff7b1418b2ad3e037d127b94e3411f29" +dependencies = [ + "bytes", + "prost-derive", +] + +[[package]] +name = "prost-derive" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1" +dependencies = [ + "anyhow", + "itertools 0.12.1", + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "psm" +version = "0.1.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5787f7cda34e3033a72192c018bc5883100330f362ef279a8cbccfce8bb4e874" +dependencies = [ + "cc", +] + +[[package]] +name = "quick-error" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" + +[[package]] +name = "quinn" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4ceeeeabace7857413798eb1ffa1e9c905a9946a57d81fb69b4b71c4d8eb3ad" +dependencies = [ + "bytes", + "pin-project-lite", + "quinn-proto", + "quinn-udp", + "rustc-hash", + "rustls", + "thiserror", + "tokio", + "tracing", +] + +[[package]] +name = "quinn-proto" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddf517c03a109db8100448a4be38d498df8a210a99fe0e1b9eaf39e78c640efe" +dependencies = [ + "bytes", + "rand", + "ring 0.17.8", + "rustc-hash", + "rustls", + "slab", + "thiserror", + "tinyvec", + "tracing", +] + +[[package]] +name = "quinn-udp" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8bffec3605b73c6f1754535084a85229fa8a30f86014e6c81aeec4abb68b0285" +dependencies = [ + "libc", + "once_cell", + "socket2", + "windows-sys 0.52.0", +] + +[[package]] +name = "quote" +version = "1.0.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom", +] + +[[package]] +name = "rand_xorshift" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" +dependencies = [ + "rand_core", +] + +[[package]] +name = "rayon" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", +] + +[[package]] +name = "rayon-scan" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f87cc11a0140b4b0da0ffc889885760c61b13672d80a908920b2c0df078fa14" +dependencies = [ + "rayon", +] + +[[package]] +name = "redox_syscall" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4" +dependencies = [ + "bitflags 2.6.0", +] + +[[package]] +name = "redox_users" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891" +dependencies = [ + "getrandom", + "libredox", + "thiserror", +] + +[[package]] +name = "regex" +version = "1.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b91213439dad192326a0d7c6ee3955910425f441d7038e0d6933b0aec5c4517f" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata 0.4.7", + "regex-syntax 0.8.4", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax 0.6.29", +] + +[[package]] +name = "regex-automata" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax 0.8.4", +] + +[[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.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" + +[[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.30", + "ipnet", + "js-sys", + "log", + "mime", + "once_cell", + "percent-encoding", + "pin-project-lite", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper 0.1.2", + "system-configuration", + "tokio", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "winreg 0.50.0", +] + +[[package]] +name = "reqwest" +version = "0.12.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7d6d2a27d57148378eb5e111173f4276ad26340ecc5c49a4a2152167a2d6a37" +dependencies = [ + "base64 0.22.1", + "bytes", + "encoding_rs", + "futures-core", + "futures-util", + "h2 0.4.5", + "http 1.1.0", + "http-body 1.0.1", + "http-body-util", + "hyper 1.4.1", + "hyper-rustls", + "hyper-tls", + "hyper-util", + "ipnet", + "js-sys", + "log", + "mime", + "native-tls", + "once_cell", + "percent-encoding", + "pin-project-lite", + "quinn", + "rustls", + "rustls-pemfile", + "rustls-pki-types", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper 1.0.1", + "system-configuration", + "tokio", + "tokio-native-tls", + "tokio-rustls", + "tokio-util", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-streams", + "web-sys", + "webpki-roots", + "winreg 0.52.0", +] + +[[package]] +name = "reqwest-middleware" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39346a33ddfe6be00cbc17a34ce996818b97b230b87229f10114693becca1268" +dependencies = [ + "anyhow", + "async-trait", + "http 1.1.0", + "reqwest 0.12.5", + "serde", + "thiserror", + "tower-service", +] + +[[package]] +name = "rfc6979" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +dependencies = [ + "hmac", + "subtle", +] + +[[package]] +name = "ring" +version = "0.16.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" +dependencies = [ + "cc", + "libc", + "once_cell", + "spin 0.5.2", + "untrusted 0.7.1", + "web-sys", + "winapi", +] + +[[package]] +name = "ring" +version = "0.17.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" +dependencies = [ + "cc", + "cfg-if", + "getrandom", + "libc", + "spin 0.9.8", + "untrusted 0.9.0", + "windows-sys 0.52.0", +] + +[[package]] +name = "ripemd" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "rlp" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" +dependencies = [ + "bytes", + "rlp-derive", + "rustc-hex", +] + +[[package]] +name = "rlp-derive" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e33d7b2abe0c340d8797fe2907d3f20d3b5ea5908683618bfe80df7f621f672a" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "rrs-succinct" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3372685893a9f67d18e98e792d690017287fd17379a83d798d958e517d380fa9" +dependencies = [ + "downcast-rs", + "num_enum 0.5.11", + "paste", +] + +[[package]] +name = "ruint" +version = "1.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c3cc4c2511671f327125da14133d0c5c5d137f006a1017a16f557bc85b16286" +dependencies = [ + "alloy-rlp", + "ark-ff 0.3.0", + "ark-ff 0.4.2", + "bytes", + "fastrlp", + "num-bigint 0.4.6", + "num-traits", + "parity-scale-codec", + "primitive-types", + "proptest", + "rand", + "rlp", + "ruint-macro", + "serde", + "valuable", + "zeroize", +] + +[[package]] +name = "ruint-macro" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48fd7bd8a6377e15ad9d42a8ec25371b94ddc67abe7c8b9127bec79bebaaae18" + +[[package]] +name = "rustc-demangle" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" + +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + +[[package]] +name = "rustc-hex" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" + +[[package]] +name = "rustc_version" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" +dependencies = [ + "semver 0.11.0", +] + +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver 1.0.23", +] + +[[package]] +name = "rustix" +version = "0.38.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" +dependencies = [ + "bitflags 2.6.0", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.52.0", +] + +[[package]] +name = "rustls" +version = "0.23.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c58f8c84392efc0a126acce10fa59ff7b3d2ac06ab451a33f2741989b806b044" +dependencies = [ + "once_cell", + "ring 0.17.8", + "rustls-pki-types", + "rustls-webpki", + "subtle", + "zeroize", +] + +[[package]] +name = "rustls-pemfile" +version = "2.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29993a25686778eb88d4189742cd713c9bce943bc54251a33509dc63cbacf73d" +dependencies = [ + "base64 0.22.1", + "rustls-pki-types", +] + +[[package]] +name = "rustls-pki-types" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "976295e77ce332211c0d24d92c0e83e50f5c5f046d11082cea19f3df13a3562d" + +[[package]] +name = "rustls-webpki" +version = "0.102.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e6b52d4fda176fd835fdc55a835d4a89b8499cad995885a21149d5ad62f852e" +dependencies = [ + "ring 0.17.8", + "rustls-pki-types", + "untrusted 0.9.0", +] + +[[package]] +name = "rustversion" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6" + +[[package]] +name = "rusty-fork" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb3dcc6e454c328bb824492db107ab7c0ae8fcffe4ad210136ef014458c1bc4f" +dependencies = [ + "fnv", + "quick-error", + "tempfile", + "wait-timeout", +] + +[[package]] +name = "ryu" +version = "1.0.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.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eca070c12893629e2cc820a9761bedf6ce1dcddc9852984d1dc734b8bd9bd024" +dependencies = [ + "cfg-if", + "derive_more", + "parity-scale-codec", + "scale-info-derive", +] + +[[package]] +name = "scale-info-derive" +version = "2.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d35494501194174bda522a32605929eefc9ecf7e0a326c26db1fdd85881eb62" +dependencies = [ + "proc-macro-crate 3.1.0", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "scc" +version = "2.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4465c22496331e20eb047ff46e7366455bc01c0c02015c4a376de0b2cd3a1af" +dependencies = [ + "sdd", +] + +[[package]] +name = "schannel" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +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 = "9f9e24d2b632954ded8ab2ef9fea0a0c769ea56ea98bddbafbad22caeeadf45d" +dependencies = [ + "hmac", + "pbkdf2 0.11.0", + "salsa20", + "sha2", +] + +[[package]] +name = "sdd" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85f05a494052771fc5bd0619742363b5e24e5ad72ab3111ec2e27925b8edc5f3" + +[[package]] +name = "sec1" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" +dependencies = [ + "base16ct", + "der", + "generic-array 0.14.7", + "pkcs8", + "subtle", + "zeroize", +] + +[[package]] +name = "security-framework" +version = "2.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" +dependencies = [ + "bitflags 2.6.0", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75da29fe9b9b08fe9d6b22b5b4bcbc75d8db3aa31e639aa56bb62e9d46bfceaf" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "semver" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" +dependencies = [ + "semver-parser", +] + +[[package]] +name = "semver" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" +dependencies = [ + "serde", +] + +[[package]] +name = "semver-parser" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" +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.204" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc76f558e0cbb2a839d37354c575f1dc3fdc6546b5be373ba43d95f231bf7c12" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.204" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0cd7e117be63d3c3678776753929474f3b04a43a080c744d6b0ae2a8c28e222" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "serde_json" +version = "1.0.122" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "784b6203951c57ff748476b126ccb5e8e2959a5c19e5c617ab1956be3dbc68da" +dependencies = [ + "itoa", + "memchr", + "ryu", + "serde", +] + +[[package]] +name = "serde_path_to_error" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af99884400da37c88f5e9146b7f1fd0fbcae8f6eec4e9da38b67d05486f814a6" +dependencies = [ + "itoa", + "serde", +] + +[[package]] +name = "serde_spanned" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79e674e01f999af37c49f70a6ede167a8a60b2503e56c5599532a65baa5969a0" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_with" +version = "3.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cecfa94848272156ea67b2b1a53f20fc7bc638c4a46d2f8abde08f05f4b857" +dependencies = [ + "base64 0.22.1", + "chrono", + "hex", + "indexmap 1.9.3", + "indexmap 2.2.6", + "serde", + "serde_derive", + "serde_json", + "serde_with_macros", + "time", +] + +[[package]] +name = "serde_with_macros" +version = "3.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8fee4991ef4f274617a51ad4af30519438dacb2f56ac773b08a1922ff743350" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "serial_test" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b4b487fe2acf240a021cf57c6b2b4903b1e78ca0ecd862a71b71d2a51fed77d" +dependencies = [ + "futures", + "log", + "once_cell", + "parking_lot", + "scc", + "serial_test_derive", +] + +[[package]] +name = "serial_test_derive" +version = "3.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82fe9db325bcef1fbcde82e078a5cc4efdf787e96b3b9cf45b50b529f2083d67" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "sha2" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.7", +] + +[[package]] +name = "sha3" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" +dependencies = [ + "digest 0.10.7", + "keccak", +] + +[[package]] +name = "sha3-asm" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9b57fd861253bff08bb1919e995f90ba8f4889de2726091c8876f3a4e823b40" +dependencies = [ + "cc", + "cfg-if", +] + +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "signal-hook-registry" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" +dependencies = [ + "libc", +] + +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "digest 0.10.7", + "rand_core", +] + +[[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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fed904c7fb2856d868b92464fc8fa597fce366edea1a9cbfaa8cb5fe080bd6d" + +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] + +[[package]] +name = "smallvec" +version = "1.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" + +[[package]] +name = "snowbridge-amcl" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "460a9ed63cdf03c1b9847e8a12a5f5ba19c4efd5869e4a737e05be25d7c427e5" +dependencies = [ + "parity-scale-codec", + "scale-info", +] + +[[package]] +name = "socket2" +version = "0.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "sp1-build" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "260c285956e8205d332c9a5acbd828462399b04caf72d0620718a20447bac91d" +dependencies = [ + "anyhow", + "cargo_metadata", + "clap", + "dirs", +] + +[[package]] +name = "sp1-core" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e916b2084e5de5e45c1dc3244dc212af9c8334dda3246acde7fc6e5ab4a7fc1" +dependencies = [ + "anyhow", + "arrayref", + "bincode", + "blake3", + "bytemuck", + "cfg-if", + "curve25519-dalek", + "elf", + "elliptic-curve", + "generic-array 1.1.0", + "hashbrown 0.14.5", + "hex", + "itertools 0.13.0", + "k256", + "log", + "nohash-hasher", + "num", + "num-bigint 0.4.6", + "num_cpus", + "p3-air", + "p3-baby-bear", + "p3-blake3", + "p3-challenger", + "p3-commit", + "p3-dft", + "p3-field", + "p3-fri", + "p3-keccak", + "p3-keccak-air", + "p3-matrix", + "p3-maybe-rayon", + "p3-merkle-tree", + "p3-poseidon2", + "p3-symmetric", + "p3-uni-stark", + "p3-util", + "rand", + "rayon-scan", + "rrs-succinct", + "serde", + "serde_with", + "size", + "snowbridge-amcl", + "sp1-derive", + "sp1-primitives", + "static_assertions", + "strum", + "strum_macros", + "tempfile", + "thiserror", + "tracing", + "tracing-forest", + "tracing-subscriber", + "typenum", + "web-time", +] + +[[package]] +name = "sp1-derive" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8dbc1d9a05a0e83f548907d50539e5e59873bbf6a82793ce87a195345ca7ddf9" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "sp1-helper" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71dce2545791b5c0c2e65f81eb76d74d51804cbbe758643978dc0bbcdbbaa127" +dependencies = [ + "cargo_metadata", + "chrono", + "sp1-build", +] + +[[package]] +name = "sp1-primitives" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb04c7a047b000dbab6b6e143f10e79a2cc5294d98fed74dc5dc11d374cef297" +dependencies = [ + "itertools 0.13.0", + "lazy_static", + "p3-baby-bear", + "p3-field", + "p3-poseidon2", + "p3-symmetric", +] + +[[package]] +name = "sp1-prover" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "906ed35cdb4d24050b1d00aa51abfdb986883c5280ca6b34b1cd50e673cfad02" +dependencies = [ + "anyhow", + "bincode", + "clap", + "dirs", + "hex", + "itertools 0.13.0", + "num-bigint 0.4.6", + "oneshot", + "p3-baby-bear", + "p3-bn254-fr", + "p3-challenger", + "p3-commit", + "p3-field", + "p3-matrix", + "rayon", + "serde", + "serde_json", + "serial_test", + "sp1-core", + "sp1-primitives", + "sp1-recursion-circuit", + "sp1-recursion-compiler", + "sp1-recursion-core", + "sp1-recursion-gnark-ffi", + "sp1-recursion-program", + "subtle-encoding", + "tempfile", + "thiserror", + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "sp1-recursion-circuit" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95a620b1c84ea7776deebf9eed2a5310c040f1b5b1db0709a2b36b86516f743d" +dependencies = [ + "bincode", + "itertools 0.13.0", + "p3-air", + "p3-baby-bear", + "p3-bn254-fr", + "p3-commit", + "p3-field", + "p3-fri", + "p3-matrix", + "p3-util", + "serde", + "sp1-core", + "sp1-recursion-compiler", + "sp1-recursion-core", + "sp1-recursion-derive", + "sp1-recursion-program", +] + +[[package]] +name = "sp1-recursion-compiler" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb5ef5565d25bf41f00280f0e09ab27cd39b8c8986af12c083e85a4061a49621" +dependencies = [ + "backtrace", + "itertools 0.13.0", + "p3-air", + "p3-baby-bear", + "p3-bn254-fr", + "p3-commit", + "p3-field", + "p3-fri", + "p3-matrix", + "p3-poseidon2", + "p3-symmetric", + "p3-util", + "serde", + "sp1-core", + "sp1-primitives", + "sp1-recursion-core", + "sp1-recursion-derive", + "tracing", +] + +[[package]] +name = "sp1-recursion-core" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5785177a892714601fd2f3e5e79af43d222bdedc415fb7cbdd52c9b1ee4dc3e2" +dependencies = [ + "arrayref", + "backtrace", + "ff 0.13.0", + "hashbrown 0.14.5", + "itertools 0.13.0", + "num_cpus", + "p3-air", + "p3-baby-bear", + "p3-bn254-fr", + "p3-challenger", + "p3-commit", + "p3-dft", + "p3-field", + "p3-fri", + "p3-matrix", + "p3-maybe-rayon", + "p3-merkle-tree", + "p3-poseidon2", + "p3-symmetric", + "p3-util", + "serde", + "serde_with", + "sp1-core", + "sp1-derive", + "sp1-primitives", + "static_assertions", + "tracing", + "zkhash", +] + +[[package]] +name = "sp1-recursion-derive" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5970fa689c5b3e41d2ea4a81f9207594b9befc2ba5ad9d8727b6bdbc7ba054e" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "sp1-recursion-gnark-ffi" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6aacdfec9e2895f0166125b89f3f058a25cdbbdce300839a46b240d3bafbac13" +dependencies = [ + "anyhow", + "bincode", + "bindgen", + "cc", + "cfg-if", + "hex", + "log", + "num-bigint 0.4.6", + "p3-baby-bear", + "p3-field", + "p3-symmetric", + "rand", + "serde", + "serde_json", + "sha2", + "sp1-core", + "sp1-recursion-compiler", + "tempfile", +] + +[[package]] +name = "sp1-recursion-program" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40b570d8e40b8faad877e7c8604de8bc51f61dbee8ee7e0efe3ae7610585e69c" +dependencies = [ + "itertools 0.13.0", + "p3-air", + "p3-baby-bear", + "p3-challenger", + "p3-commit", + "p3-dft", + "p3-field", + "p3-fri", + "p3-matrix", + "p3-maybe-rayon", + "p3-merkle-tree", + "p3-poseidon2", + "p3-symmetric", + "p3-util", + "rand", + "serde", + "sp1-core", + "sp1-primitives", + "sp1-recursion-compiler", + "sp1-recursion-core", + "stacker", + "tracing", +] + +[[package]] +name = "sp1-sdk" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6924c2ba6d0a522b17f29368f6db8ebd1bf2a424eb4d6e67308f1be4df9d860c" +dependencies = [ + "alloy-sol-types", + "anyhow", + "async-trait", + "axum", + "bincode", + "cfg-if", + "dirs", + "ethers", + "futures", + "hashbrown 0.14.5", + "hex", + "indicatif", + "log", + "num-bigint 0.4.6", + "p3-baby-bear", + "p3-commit", + "p3-field", + "p3-fri", + "p3-matrix", + "prost", + "reqwest 0.12.5", + "reqwest-middleware", + "serde", + "serde_json", + "sha2", + "sp1-core", + "sp1-prover", + "strum", + "strum_macros", + "sysinfo", + "tempfile", + "thiserror", + "tokio", + "tracing", + "twirp-rs", + "vergen", +] + +[[package]] +name = "spin" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" + +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" + +[[package]] +name = "spki" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +dependencies = [ + "base64ct", + "der", +] + +[[package]] +name = "stacker" +version = "0.1.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c886bd4480155fd3ef527d45e9ac8dd7118a898a46530b7b94c3e21866259fce" +dependencies = [ + "cc", + "cfg-if", + "libc", + "psm", + "winapi", +] + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "strum" +version = "0.26.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" +dependencies = [ + "strum_macros", +] + +[[package]] +name = "strum_macros" +version = "0.26.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "rustversion", + "syn 2.0.72", +] + +[[package]] +name = "subtle" +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 = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.72" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc4b9b9bf2add8093d3f2c0204471e951b2285580335de42f9d2534f3ae7a8af" +dependencies = [ + "proc-macro2", + "quote", + "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.72", +] + +[[package]] +name = "sync_wrapper" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" + +[[package]] +name = "sync_wrapper" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" + +[[package]] +name = "sysinfo" +version = "0.30.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a5b4ddaee55fb2bea2bf0e5000747e5f5c0de765e5a5ff87f4cd106439f4bb3" +dependencies = [ + "cfg-if", + "core-foundation-sys", + "libc", + "ntapi", + "once_cell", + "rayon", + "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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + +[[package]] +name = "tempfile" +version = "3.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" +dependencies = [ + "cfg-if", + "fastrand", + "rustix", + "windows-sys 0.52.0", +] + +[[package]] +name = "thiserror" +version = "1.0.63" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.63" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "thread_local" +version = "1.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" +dependencies = [ + "cfg-if", + "once_cell", +] + +[[package]] +name = "time" +version = "0.3.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" +dependencies = [ + "deranged", + "itoa", + "libc", + "num-conv", + "num_threads", + "powerfmt", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" + +[[package]] +name = "time-macros" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" +dependencies = [ + "num-conv", + "time-core", +] + +[[package]] +name = "tiny-keccak" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +dependencies = [ + "crunchy", +] + +[[package]] +name = "tinyvec" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.39.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daa4fb1bc778bd6f04cbfc4bb2d06a7396a8f299dc33ea1900cedaa316f467b1" +dependencies = [ + "backtrace", + "bytes", + "libc", + "mio", + "parking_lot", + "pin-project-lite", + "signal-hook-registry", + "socket2", + "tokio-macros", + "windows-sys 0.52.0", +] + +[[package]] +name = "tokio-macros" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "tokio-native-tls" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" +dependencies = [ + "native-tls", + "tokio", +] + +[[package]] +name = "tokio-rustls" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" +dependencies = [ + "rustls", + "rustls-pki-types", + "tokio", +] + +[[package]] +name = "tokio-util" +version = "0.7.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "toml" +version = "0.8.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac2caab0bf757388c6c0ae23b3293fdb463fee59434529014f85e3263b995c28" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit 0.22.16", +] + +[[package]] +name = "toml_datetime" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4badfd56924ae69bcc9039335b2e017639ce3f9b001c393c1b2d1ef846ce2cbf" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.19.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +dependencies = [ + "indexmap 2.2.6", + "toml_datetime", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" +dependencies = [ + "indexmap 2.2.6", + "toml_datetime", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.22.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "278f3d518e152219c994ce877758516bca5e118eaed6996192a774fb9fbf0788" +dependencies = [ + "indexmap 2.2.6", + "serde", + "serde_spanned", + "toml_datetime", + "winnow 0.6.15", +] + +[[package]] +name = "tower" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +dependencies = [ + "futures-core", + "futures-util", + "pin-project", + "pin-project-lite", + "tokio", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower-layer" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" + +[[package]] +name = "tower-service" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" + +[[package]] +name = "tracing" +version = "0.1.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +dependencies = [ + "log", + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "tracing-core" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-forest" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee40835db14ddd1e3ba414292272eddde9dad04d3d4b65509656414d1c42592f" +dependencies = [ + "ansi_term", + "smallvec", + "thiserror", + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "tracing-futures" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" +dependencies = [ + "pin-project", + "tracing", +] + +[[package]] +name = "tracing-log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" +dependencies = [ + "matchers", + "nu-ansi-term", + "once_cell", + "regex", + "sharded-slab", + "smallvec", + "thread_local", + "tracing", + "tracing-core", + "tracing-log", +] + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "twirp-rs" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfa3161d8eee0abcad4e762f4215381a430cc1281870d575b0f1e4fbfc74b8ce" +dependencies = [ + "async-trait", + "axum", + "bytes", + "futures", + "http 1.1.0", + "http-body-util", + "hyper 1.4.1", + "prost", + "reqwest 0.12.5", + "serde", + "serde_json", + "thiserror", + "tokio", + "tower", + "url", +] + +[[package]] +name = "typenum" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" + +[[package]] +name = "ucd-trie" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" + +[[package]] +name = "uint" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76f64bba2c53b04fcab63c01a7d7427eadc821e3bc48c34dc9ba29c501164b52" +dependencies = [ + "byteorder", + "crunchy", + "hex", + "static_assertions", +] + +[[package]] +name = "unarray" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" + +[[package]] +name = "unicode-bidi" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" + +[[package]] +name = "unicode-ident" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unicode-normalization" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-width" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0336d538f7abc86d282a4189614dfaa90810dfc2c6f6427eaf88e16311dd225d" + +[[package]] +name = "unicode-xid" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" + +[[package]] +name = "untrusted" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" + +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + +[[package]] +name = "url" +version = "2.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", +] + +[[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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "vergen" +version = "8.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2990d9ea5967266ea0ccf413a4aa5c42a93dbcfda9cb49a97de6931726b12566" +dependencies = [ + "anyhow", + "cfg-if", + "git2", + "rustversion", + "time", +] + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "wait-timeout" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6" +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" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasm-bindgen" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.72", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.42" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" + +[[package]] +name = "wasm-streams" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b65dc4c90b63b118468cf747d8bf3566c1913ef60be765b5730ead9e0a3ba129" +dependencies = [ + "futures-util", + "js-sys", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "web-sys" +version = "0.3.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "web-time" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "webpki-roots" +version = "0.26.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd7c23921eeb1713a4e851530e9b9756e4fb0e89978582942612524cf09f01cd" +dependencies = [ + "rustls-pki-types", +] + +[[package]] +name = "which" +version = "4.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" +dependencies = [ + "either", + "home", + "once_cell", + "rustix", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be" +dependencies = [ + "windows-core", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-core" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "winnow" +version = "0.5.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] + +[[package]] +name = "winnow" +version = "0.6.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "557404e450152cd6795bb558bca69e43c585055f4606e3bcae5894fc6dac9ba0" +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 = "winreg" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5" +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.0", + "send_wrapper 0.6.0", + "thiserror", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + +[[package]] +name = "zerocopy" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "zeroize" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "zkhash" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4352d1081da6922701401cdd4cbf29a2723feb4cfabb5771f6fee8e9276da1c7" +dependencies = [ + "ark-ff 0.4.2", + "ark-std 0.4.0", + "bitvec", + "blake2", + "bls12_381", + "byteorder", + "cfg-if", + "group 0.12.1", + "group 0.13.0", + "halo2", + "hex", + "jubjub", + "lazy_static", + "pasta_curves 0.5.1", + "rand", + "serde", + "sha2", + "sha3", + "subtle", +] diff --git a/is_prime/script/Cargo.toml b/is_prime/script/Cargo.toml new file mode 100644 index 000000000..1bc334b7a --- /dev/null +++ b/is_prime/script/Cargo.toml @@ -0,0 +1,26 @@ +[package] +version = "0.1.0" +name = "fibonacci-script" +edition = "2021" +default-run = "fibonacci" + +[[bin]] +name = "fibonacci" +path = "src/bin/main.rs" + +[[bin]] +name = "evm" +path = "src/bin/evm.rs" + +[dependencies] +sp1-sdk = "3.0.0" +serde_json = { version = "1.0", default-features = false, features = ["alloc"] } +serde = { version = "1.0.200", default-features = false, features = ["derive"] } +clap = { version = "4.0", features = ["derive", "env"] } +tracing = "0.1.40" +hex = "0.4.3" +alloy-sol-types = { workspace = true } +fibonacci-lib = { path = "../lib" } + +[build-dependencies] +sp1-helper = "3.0.0" diff --git a/is_prime/script/build.rs b/is_prime/script/build.rs new file mode 100644 index 000000000..bc5f02597 --- /dev/null +++ b/is_prime/script/build.rs @@ -0,0 +1,5 @@ +use sp1_helper::build_program_with_args; + +fn main() { + build_program_with_args("../program", Default::default()) +} diff --git a/is_prime/script/src/bin/evm.rs b/is_prime/script/src/bin/evm.rs new file mode 100644 index 000000000..3f48bbc8a --- /dev/null +++ b/is_prime/script/src/bin/evm.rs @@ -0,0 +1,127 @@ +//! An end-to-end example of using the SP1 SDK to generate a proof of a program that can have an +//! EVM-Compatible proof generated which can be verified on-chain. +//! +//! You can run this script using the following command: +//! ```shell +//! RUST_LOG=info cargo run --release --bin evm -- --system groth16 +//! ``` +//! or +//! ```shell +//! RUST_LOG=info cargo run --release --bin evm -- --system plonk +//! ``` + +use alloy_sol_types::SolType; +use clap::{Parser, ValueEnum}; +use fibonacci_lib::PublicValuesStruct; +use serde::{Deserialize, Serialize}; +use sp1_sdk::{ + include_elf, HashableKey, ProverClient, SP1ProofWithPublicValues, SP1Stdin, SP1VerifyingKey, +}; +use std::path::PathBuf; + +/// The ELF (executable and linkable format) file for the Succinct RISC-V zkVM. +pub const FIBONACCI_ELF: &[u8] = include_elf!("fibonacci-program"); + +/// The arguments for the EVM command. +#[derive(Parser, Debug)] +#[clap(author, version, about, long_about = None)] +struct EVMArgs { + #[clap(long, default_value = "20")] + n: u32, + #[clap(long, value_enum, default_value = "groth16")] + system: ProofSystem, +} + +/// Enum representing the available proof systems +#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, ValueEnum, Debug)] +enum ProofSystem { + Plonk, + Groth16, +} + +/// A fixture that can be used to test the verification of SP1 zkVM proofs inside Solidity. +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +struct SP1FibonacciProofFixture { + cnt_primes: u32, + n: u32, + vkey: String, + public_values: String, + proof: String, +} + +fn main() { + // Setup the logger. + sp1_sdk::utils::setup_logger(); + + // Parse the command line arguments. + let args = EVMArgs::parse(); + + // Setup the prover client. + let client = ProverClient::new(); + + // Setup the program. + let (pk, vk) = client.setup(FIBONACCI_ELF); + + // Setup the inputs. + let mut stdin = SP1Stdin::new(); + stdin.write(&args.n); + + println!("n: {}", args.n); + println!("Proof System: {:?}", args.system); + + // Generate the proof based on the selected proof system. + let proof = match args.system { + ProofSystem::Plonk => client.prove(&pk, stdin).plonk().run(), + ProofSystem::Groth16 => client.prove(&pk, stdin).groth16().run(), + } + .expect("failed to generate proof"); + + create_proof_fixture(&proof, &vk, args.system); +} + +/// Create a fixture for the given proof. +fn create_proof_fixture( + proof: &SP1ProofWithPublicValues, + vk: &SP1VerifyingKey, + system: ProofSystem, +) { + // Deserialize the public values. + let bytes = proof.public_values.as_slice(); + let PublicValuesStruct { n, cnt_primes } = + PublicValuesStruct::abi_decode(bytes, false).unwrap(); + + // Create the testing fixture so we can test things end-to-end. + let fixture = SP1FibonacciProofFixture { + cnt_primes, + n, + vkey: vk.bytes32().to_string(), + public_values: format!("0x{}", hex::encode(bytes)), + proof: format!("0x{}", hex::encode(proof.bytes())), + }; + + // The verification key is used to verify that the proof corresponds to the execution of the + // program on the given input. + // + // Note that the verification key stays the same regardless of the input. + println!("Verification Key: {}", fixture.vkey); + + // The public values are the values which are publicly committed to by the zkVM. + // + // If you need to expose the inputs or outputs of your program, you should commit them in + // the public values. + println!("Public Values: {}", fixture.public_values); + + // The proof proves to the verifier that the program was executed with some inputs that led to + // the give public values. + println!("Proof Bytes: {}", fixture.proof); + + // Save the fixture to a file. + let fixture_path = PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("../contracts/src/fixtures"); + std::fs::create_dir_all(&fixture_path).expect("failed to create fixture path"); + std::fs::write( + fixture_path.join(format!("{:?}-fixture.json", system).to_lowercase()), + serde_json::to_string_pretty(&fixture).unwrap(), + ) + .expect("failed to write fixture"); +} diff --git a/is_prime/script/src/bin/main.rs b/is_prime/script/src/bin/main.rs new file mode 100644 index 000000000..c5eb23650 --- /dev/null +++ b/is_prime/script/src/bin/main.rs @@ -0,0 +1,89 @@ +//! An end-to-end example of using the SP1 SDK to generate a proof of a program that can be executed +//! or have a core proof generated. +//! +//! You can run this script using the following command: +//! ```shell +//! RUST_LOG=info cargo run --release -- --execute +//! ``` +//! or +//! ```shell +//! RUST_LOG=info cargo run --release -- --prove +//! ``` + +use alloy_sol_types::SolType; +use clap::Parser; +use fibonacci_lib::PublicValuesStruct; +use sp1_sdk::{include_elf, ProverClient, SP1Stdin}; + +/// The ELF (executable and linkable format) file for the Succinct RISC-V zkVM. +pub const FIBONACCI_ELF: &[u8] = include_elf!("fibonacci-program"); + +/// The arguments for the command. +#[derive(Parser, Debug)] +#[clap(author, version, about, long_about = None)] +struct Args { + #[clap(long)] + execute: bool, + + #[clap(long)] + prove: bool, + + #[clap(long, default_value = "20")] + n: u32, +} + +fn main() { + // Setup the logger. + sp1_sdk::utils::setup_logger(); + + // Parse the command line arguments. + let args = Args::parse(); + + if args.execute == args.prove { + eprintln!("Error: You must specify either --execute or --prove"); + std::process::exit(1); + } + + // Setup the prover client. + let client = ProverClient::new(); + + // Setup the inputs. + let mut stdin = SP1Stdin::new(); + stdin.write(&args.n); + + println!("n: {}", args.n); + + if args.execute { + // Execute the program + let (output, report) = client.execute(FIBONACCI_ELF, stdin).run().unwrap(); + println!("Program executed successfully."); + + // Read the output. + let decoded = PublicValuesStruct::abi_decode(output.as_slice(), true).unwrap(); + let PublicValuesStruct { n, cnt_primes } = decoded; + println!("n: {}", n); + println!("cnt_primes: {}", cnt_primes); + + // let expected_cnt_primes = + // assert_eq!(cnt_primes, expected_cnt_primes) + // println!("Values are correct!"); + + // Record the number of cycles executed. + println!("Number of cycles: {}", report.total_instruction_count()); + } else { + // Setup the program for proving. + let (pk, vk) = client.setup(FIBONACCI_ELF); + + // Generate the proof + let proof = client + .prove(&pk, stdin) + .run() + .expect("failed to generate proof"); + + println!("Successfully generated proof!"); + + // Verify the proof. + client.verify(&proof, &vk).expect("failed to verify proof"); + println!("Successfully verified proof!"); + } +} From e590a2bb15ff96ce44c53f89c58c93a832892242 Mon Sep 17 00:00:00 2001 From: Mihai Date: Tue, 7 Jan 2025 16:30:03 +0200 Subject: [PATCH 7/8] change some comments --- is_prime/program/src/main.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/is_prime/program/src/main.rs b/is_prime/program/src/main.rs index 26d003d65..044e32b89 100644 --- a/is_prime/program/src/main.rs +++ b/is_prime/program/src/main.rs @@ -1,4 +1,4 @@ -//! A simple program that takes a number `n` as input, and writes the `n-1`th and `n`th fibonacci +//! A simple program that takes a number `n` and counts the number of primes up to n //! number as an output. // These two lines are necessary for the program to properly compile. @@ -18,7 +18,7 @@ pub fn main() { // from the prover. let n = sp1_zkvm::io::read::(); - // Compute the n'th fibonacci number using a function from the workspace lib crate. + // Count (naively) the number of primes up to n inclusively let mut cnt_primes = 0; for i in 0..=n.into() { cnt_primes += is_prime(i) as u32; From 08f34e79cc7b859f8eaf9dc3835c8598cdbd520a Mon Sep 17 00:00:00 2001 From: Mihai Date: Tue, 7 Jan 2025 16:52:15 +0200 Subject: [PATCH 8/8] rename, remove elf --- is_prime/Cargo.lock | 62 +++++++++++------------ is_prime/README.md | 2 +- is_prime/elf/riscv32im-succinct-zkvm-elf | Bin 120820 -> 0 bytes is_prime/lib/Cargo.toml | 2 +- is_prime/program/Cargo.lock | 2 +- is_prime/program/Cargo.toml | 4 +- is_prime/program/src/main.rs | 2 +- is_prime/script/Cargo.lock | 2 +- is_prime/script/Cargo.toml | 8 +-- is_prime/script/src/bin/evm.rs | 10 ++-- is_prime/script/src/bin/main.rs | 8 +-- 11 files changed, 51 insertions(+), 51 deletions(-) delete mode 100755 is_prime/elf/riscv32im-succinct-zkvm-elf diff --git a/is_prime/Cargo.lock b/is_prime/Cargo.lock index 9159014b5..61cc7b3f1 100644 --- a/is_prime/Cargo.lock +++ b/is_prime/Cargo.lock @@ -1672,37 +1672,6 @@ version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" -[[package]] -name = "fibonacci-lib" -version = "0.1.0" -dependencies = [ - "alloy-sol-types", -] - -[[package]] -name = "fibonacci-program" -version = "0.1.0" -dependencies = [ - "alloy-sol-types", - "fibonacci-lib", - "sp1-zkvm", -] - -[[package]] -name = "fibonacci-script" -version = "0.1.0" -dependencies = [ - "alloy-sol-types", - "clap", - "fibonacci-lib", - "hex", - "serde", - "serde_json", - "sp1-helper", - "sp1-sdk", - "tracing", -] - [[package]] name = "fixed-hash" version = "0.8.0" @@ -2402,6 +2371,37 @@ version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" +[[package]] +name = "is_prime-lib" +version = "0.1.0" +dependencies = [ + "alloy-sol-types", +] + +[[package]] +name = "is_prime-program" +version = "0.1.0" +dependencies = [ + "alloy-sol-types", + "is_prime-lib", + "sp1-zkvm", +] + +[[package]] +name = "is_prime-script" +version = "0.1.0" +dependencies = [ + "alloy-sol-types", + "clap", + "hex", + "is_prime-lib", + "serde", + "serde_json", + "sp1-helper", + "sp1-sdk", + "tracing", +] + [[package]] name = "is_terminal_polyfill" version = "1.70.1" diff --git a/is_prime/README.md b/is_prime/README.md index c662baf2f..085b46924 100644 --- a/is_prime/README.md +++ b/is_prime/README.md @@ -68,7 +68,7 @@ inside Solidity. To retrieve your `programVKey` for your on-chain contract, run the following command: ```sh -cargo prove vkey --program fibonacci-program +cargo prove vkey --program is_prime-program ``` ## Using the Prover Network diff --git a/is_prime/elf/riscv32im-succinct-zkvm-elf b/is_prime/elf/riscv32im-succinct-zkvm-elf deleted file mode 100755 index 3938e57cfba3d2f791461852dd2288a3042cb7e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 120820 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

3wQ?my>b$B-ap_Omp+-# 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

6!W1d|py<(!0wD<8r3tG&=1$ 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 B$>sn6 diff --git a/is_prime/lib/Cargo.toml b/is_prime/lib/Cargo.toml index 11f9527b7..7229ce6a9 100644 --- a/is_prime/lib/Cargo.toml +++ b/is_prime/lib/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "fibonacci-lib" +name = "is_prime-lib" version = "0.1.0" edition = "2021" diff --git a/is_prime/program/Cargo.lock b/is_prime/program/Cargo.lock index dd66e5b9a..3d50d7791 100644 --- a/is_prime/program/Cargo.lock +++ b/is_prime/program/Cargo.lock @@ -545,7 +545,7 @@ dependencies = [ ] [[package]] -name = "fibonacci-program" +name = "is_prime-program" version = "0.1.0" dependencies = [ "alloy-sol-types", diff --git a/is_prime/program/Cargo.toml b/is_prime/program/Cargo.toml index cf178d92a..edbaa0bcd 100644 --- a/is_prime/program/Cargo.toml +++ b/is_prime/program/Cargo.toml @@ -1,9 +1,9 @@ [package] version = "0.1.0" -name = "fibonacci-program" +name = "is_prime-program" edition = "2021" [dependencies] alloy-sol-types = { workspace = true } sp1-zkvm = "3.0.0-rc4" -fibonacci-lib = { path = "../lib" } +is_prime-lib = { path = "../lib" } diff --git a/is_prime/program/src/main.rs b/is_prime/program/src/main.rs index 044e32b89..e24aab848 100644 --- a/is_prime/program/src/main.rs +++ b/is_prime/program/src/main.rs @@ -9,7 +9,7 @@ sp1_zkvm::entrypoint!(main); use alloy_sol_types::SolType; -use fibonacci_lib::{is_prime, PublicValuesStruct}; +use is_prime_lib::{is_prime, PublicValuesStruct}; pub fn main() { // Read an input to the program. diff --git a/is_prime/script/Cargo.lock b/is_prime/script/Cargo.lock index 730721958..1bc3c9834 100644 --- a/is_prime/script/Cargo.lock +++ b/is_prime/script/Cargo.lock @@ -1627,7 +1627,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" [[package]] -name = "fibonacci-script" +name = "is_prime-script" version = "0.1.0" dependencies = [ "alloy-sol-types", diff --git a/is_prime/script/Cargo.toml b/is_prime/script/Cargo.toml index 1bc334b7a..8baf03869 100644 --- a/is_prime/script/Cargo.toml +++ b/is_prime/script/Cargo.toml @@ -1,11 +1,11 @@ [package] version = "0.1.0" -name = "fibonacci-script" +name = "is_prime-script" edition = "2021" -default-run = "fibonacci" +default-run = "is_prime" [[bin]] -name = "fibonacci" +name = "is_prime" path = "src/bin/main.rs" [[bin]] @@ -20,7 +20,7 @@ clap = { version = "4.0", features = ["derive", "env"] } tracing = "0.1.40" hex = "0.4.3" alloy-sol-types = { workspace = true } -fibonacci-lib = { path = "../lib" } +is_prime-lib = { path = "../lib" } [build-dependencies] sp1-helper = "3.0.0" diff --git a/is_prime/script/src/bin/evm.rs b/is_prime/script/src/bin/evm.rs index 3f48bbc8a..389259fd9 100644 --- a/is_prime/script/src/bin/evm.rs +++ b/is_prime/script/src/bin/evm.rs @@ -12,7 +12,7 @@ use alloy_sol_types::SolType; use clap::{Parser, ValueEnum}; -use fibonacci_lib::PublicValuesStruct; +use is_prime_lib::PublicValuesStruct; use serde::{Deserialize, Serialize}; use sp1_sdk::{ include_elf, HashableKey, ProverClient, SP1ProofWithPublicValues, SP1Stdin, SP1VerifyingKey, @@ -20,7 +20,7 @@ use sp1_sdk::{ use std::path::PathBuf; /// The ELF (executable and linkable format) file for the Succinct RISC-V zkVM. -pub const FIBONACCI_ELF: &[u8] = include_elf!("fibonacci-program"); +pub const is_prime_ELF: &[u8] = include_elf!("is_prime-program"); /// The arguments for the EVM command. #[derive(Parser, Debug)] @@ -42,7 +42,7 @@ enum ProofSystem { /// A fixture that can be used to test the verification of SP1 zkVM proofs inside Solidity. #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] -struct SP1FibonacciProofFixture { +struct SP1is_primeProofFixture { cnt_primes: u32, n: u32, vkey: String, @@ -61,7 +61,7 @@ fn main() { let client = ProverClient::new(); // Setup the program. - let (pk, vk) = client.setup(FIBONACCI_ELF); + let (pk, vk) = client.setup(is_prime_ELF); // Setup the inputs. let mut stdin = SP1Stdin::new(); @@ -92,7 +92,7 @@ fn create_proof_fixture( PublicValuesStruct::abi_decode(bytes, false).unwrap(); // Create the testing fixture so we can test things end-to-end. - let fixture = SP1FibonacciProofFixture { + let fixture = SP1is_primeProofFixture { cnt_primes, n, vkey: vk.bytes32().to_string(), diff --git a/is_prime/script/src/bin/main.rs b/is_prime/script/src/bin/main.rs index c5eb23650..4b3e8456e 100644 --- a/is_prime/script/src/bin/main.rs +++ b/is_prime/script/src/bin/main.rs @@ -12,11 +12,11 @@ use alloy_sol_types::SolType; use clap::Parser; -use fibonacci_lib::PublicValuesStruct; +use is_prime_lib::PublicValuesStruct; use sp1_sdk::{include_elf, ProverClient, SP1Stdin}; /// The ELF (executable and linkable format) file for the Succinct RISC-V zkVM. -pub const FIBONACCI_ELF: &[u8] = include_elf!("fibonacci-program"); +pub const is_prime_ELF: &[u8] = include_elf!("is_prime-program"); /// The arguments for the command. #[derive(Parser, Debug)] @@ -55,7 +55,7 @@ fn main() { if args.execute { // Execute the program - let (output, report) = client.execute(FIBONACCI_ELF, stdin).run().unwrap(); + let (output, report) = client.execute(is_prime_ELF, stdin).run().unwrap(); println!("Program executed successfully."); // Read the output. @@ -72,7 +72,7 @@ fn main() { println!("Number of cycles: {}", report.total_instruction_count()); } else { // Setup the program for proving. - let (pk, vk) = client.setup(FIBONACCI_ELF); + let (pk, vk) = client.setup(is_prime_ELF); // Generate the proof let proof = client