From 435dba1da2371ab59bccfb4afd44a91ffa60bb91 Mon Sep 17 00:00:00 2001 From: Esad Yusuf Atik Date: Thu, 12 Dec 2024 12:33:39 +0300 Subject: [PATCH] cleanup sov-sdk codes (#1594) --- Cargo.lock | 23 - Cargo.toml | 3 - Makefile | 4 - bin/citrea/src/test_rpc.rs | 14 +- crates/fullnode/src/runner.rs | 1 - .../sovereign-sdk/adapters/mock-da/Cargo.toml | 2 - .../full-node/db/sov-db/src/ledger_db/mod.rs | 41 +- .../full-node/sov-stf-runner/src/mock/mod.rs | 38 +- crates/sovereign-sdk/fuzz/Cargo.lock | 2794 ----------------- crates/sovereign-sdk/fuzz/Cargo.toml | 55 - crates/sovereign-sdk/fuzz/Makefile | 34 - crates/sovereign-sdk/fuzz/README.md | 66 - ...h-da39a3ee5e6b4b0d3255bfef95601890afd80709 | 0 ...h-55fd4bd554ac3dcc6a2a2719335bd95869b9f6f5 | Bin 37 -> 0 bytes ...h-03ff9dbf9c64fb7c125f0aec0b8b80a972907eb8 | 2 - ...h-1261a81d957460d69943ae02e30528372736fc15 | 1 - ...h-1f039bacf8f860eb5507d9ee3a9879dfe316cf5e | 2 - ...h-44796f5e67307b5b18e648fdd016e885ebf50da9 | 1 - ...h-5e665cf3759c0aabfc3e898f6294840582421b32 | 2 - ...h-6929e000e5891085cf17a75de96dd505b6499083 | 2 - ...h-816595d1445fb45b609cca5417ba5f537c74ab43 | Bin 35 -> 0 bytes ...h-98daf6c68def387cffda2937a318cdfd9e956627 | Bin 35 -> 0 bytes ...h-b4a051390ba551b5349b6f233930f32f9e16bd85 | Bin 37 -> 0 bytes ...h-e5f45f193d720ae7264383fcc0763cd945120fc1 | 4 - ...h-2221b8862d9d37ec7c714a5df89b570c1356cdba | 1 - ...h-da39a3ee5e6b4b0d3255bfef95601890afd80709 | 0 ...h-ef43788e032a15a049005ce4fd839b3777597338 | 1 - ...t-727720324b031a1f6408810b07628b558866fb00 | 2 - ...t-a5b5c4ac13d3d8cbc8b4696cb715160998407a8f | 1 - .../address_bech_32_parse_serde.rs | 8 - .../address_bech_32_try_from_bytes.rs | 8 - .../fuzz/fuzz_targets/parse_address.rs | 15 - .../module-system/sov-modules-api/src/lib.rs | 4 - .../sov-modules-api/src/transaction.rs | 3 - .../sov-modules-stf-blueprint/src/lib.rs | 24 +- .../sovereign-sdk/rollup-interface/Cargo.toml | 4 +- .../src/state_machine/crypto/mod.rs | 3 - .../src/state_machine/crypto/simple_hasher.rs | 83 - .../rollup-interface/src/state_machine/mod.rs | 3 - .../src/state_machine/optimistic.rs | 47 - .../rollup-interface/src/state_machine/stf.rs | 88 - .../src/state_machine/stf/fuzzing.rs | 202 -- .../src/state_machine/storage.rs | 1 - crates/sovereign-sdk/utils/README.md | 4 - .../utils/zk-cycle-macros/Cargo.toml | 37 - .../utils/zk-cycle-macros/README.md | 39 - .../utils/zk-cycle-macros/src/lib.rs | 68 - .../utils/zk-cycle-macros/tests/all_tests.rs | 5 - .../zk-cycle-macros/tests/cycle_macro.rs | 71 - .../utils/zk-cycle-utils/Cargo.toml | 21 - .../utils/zk-cycle-utils/README.md | 72 - .../utils/zk-cycle-utils/src/lib.rs | 29 - guests/risc0/batch-proof-bitcoin/Cargo.lock | 1 - guests/risc0/batch-proof-mock/Cargo.lock | 1 - .../light-client-proof-bitcoin/Cargo.lock | 1 - .../risc0/light-client-proof-mock/Cargo.lock | 1 - 56 files changed, 12 insertions(+), 3925 deletions(-) delete mode 100644 crates/sovereign-sdk/fuzz/Cargo.lock delete mode 100644 crates/sovereign-sdk/fuzz/Cargo.toml delete mode 100644 crates/sovereign-sdk/fuzz/Makefile delete mode 100644 crates/sovereign-sdk/fuzz/README.md delete mode 100644 crates/sovereign-sdk/fuzz/artifacts/accounts_call/crash-da39a3ee5e6b4b0d3255bfef95601890afd80709 delete mode 100644 crates/sovereign-sdk/fuzz/artifacts/bank_call/crash-55fd4bd554ac3dcc6a2a2719335bd95869b9f6f5 delete mode 100644 crates/sovereign-sdk/fuzz/artifacts/crash-03ff9dbf9c64fb7c125f0aec0b8b80a972907eb8 delete mode 100644 crates/sovereign-sdk/fuzz/artifacts/crash-1261a81d957460d69943ae02e30528372736fc15 delete mode 100644 crates/sovereign-sdk/fuzz/artifacts/crash-1f039bacf8f860eb5507d9ee3a9879dfe316cf5e delete mode 100644 crates/sovereign-sdk/fuzz/artifacts/crash-44796f5e67307b5b18e648fdd016e885ebf50da9 delete mode 100644 crates/sovereign-sdk/fuzz/artifacts/crash-5e665cf3759c0aabfc3e898f6294840582421b32 delete mode 100644 crates/sovereign-sdk/fuzz/artifacts/crash-6929e000e5891085cf17a75de96dd505b6499083 delete mode 100644 crates/sovereign-sdk/fuzz/artifacts/crash-816595d1445fb45b609cca5417ba5f537c74ab43 delete mode 100644 crates/sovereign-sdk/fuzz/artifacts/crash-98daf6c68def387cffda2937a318cdfd9e956627 delete mode 100644 crates/sovereign-sdk/fuzz/artifacts/crash-b4a051390ba551b5349b6f233930f32f9e16bd85 delete mode 100644 crates/sovereign-sdk/fuzz/artifacts/crash-e5f45f193d720ae7264383fcc0763cd945120fc1 delete mode 100644 crates/sovereign-sdk/fuzz/artifacts/fuzz_namespace_group_from_b64/crash-2221b8862d9d37ec7c714a5df89b570c1356cdba delete mode 100644 crates/sovereign-sdk/fuzz/artifacts/fuzz_namespace_group_from_b64/crash-da39a3ee5e6b4b0d3255bfef95601890afd80709 delete mode 100644 crates/sovereign-sdk/fuzz/artifacts/fuzz_namespace_group_from_b64/crash-ef43788e032a15a049005ce4fd839b3777597338 delete mode 100644 crates/sovereign-sdk/fuzz/artifacts/slow-unit-727720324b031a1f6408810b07628b558866fb00 delete mode 100644 crates/sovereign-sdk/fuzz/artifacts/slow-unit-a5b5c4ac13d3d8cbc8b4696cb715160998407a8f delete mode 100644 crates/sovereign-sdk/fuzz/fuzz_targets/address_bech_32_parse_serde.rs delete mode 100644 crates/sovereign-sdk/fuzz/fuzz_targets/address_bech_32_try_from_bytes.rs delete mode 100644 crates/sovereign-sdk/fuzz/fuzz_targets/parse_address.rs delete mode 100644 crates/sovereign-sdk/rollup-interface/src/state_machine/crypto/mod.rs delete mode 100644 crates/sovereign-sdk/rollup-interface/src/state_machine/crypto/simple_hasher.rs delete mode 100644 crates/sovereign-sdk/rollup-interface/src/state_machine/optimistic.rs delete mode 100644 crates/sovereign-sdk/rollup-interface/src/state_machine/stf/fuzzing.rs delete mode 100644 crates/sovereign-sdk/rollup-interface/src/state_machine/storage.rs delete mode 100644 crates/sovereign-sdk/utils/README.md delete mode 100644 crates/sovereign-sdk/utils/zk-cycle-macros/Cargo.toml delete mode 100644 crates/sovereign-sdk/utils/zk-cycle-macros/README.md delete mode 100644 crates/sovereign-sdk/utils/zk-cycle-macros/src/lib.rs delete mode 100644 crates/sovereign-sdk/utils/zk-cycle-macros/tests/all_tests.rs delete mode 100644 crates/sovereign-sdk/utils/zk-cycle-macros/tests/cycle_macro.rs delete mode 100644 crates/sovereign-sdk/utils/zk-cycle-utils/Cargo.toml delete mode 100644 crates/sovereign-sdk/utils/zk-cycle-utils/README.md delete mode 100644 crates/sovereign-sdk/utils/zk-cycle-utils/src/lib.rs diff --git a/Cargo.lock b/Cargo.lock index 2aea4d25e..703b3ad13 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -7454,7 +7454,6 @@ dependencies = [ "bytes", "futures", "hex", - "lazy_static", "pin-project", "rusqlite", "serde", @@ -7631,7 +7630,6 @@ dependencies = [ "proptest-derive", "serde", "serde_json", - "sha2", "thiserror", "tokio", "tracing", @@ -7701,27 +7699,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "sov-zk-cycle-macros" -version = "0.5.0-rc.1" -dependencies = [ - "proc-macro2", - "quote", - "risc0-zkvm", - "risc0-zkvm-platform", - "sov-zk-cycle-macros", - "syn 2.0.87", - "trybuild", -] - -[[package]] -name = "sov-zk-cycle-utils" -version = "0.5.0-rc.1" -dependencies = [ - "risc0-zkvm", - "risc0-zkvm-platform", -] - [[package]] name = "sp1-build" version = "3.2.1" diff --git a/Cargo.toml b/Cargo.toml index 7c7b991da..2640293eb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -28,9 +28,6 @@ members = [ "crates/sovereign-sdk/full-node/sov-ledger-rpc", "crates/sovereign-sdk/full-node/sov-stf-runner", "crates/sovereign-sdk/full-node/sov-prover-storage-manager", - # Utils - "crates/sovereign-sdk/utils/zk-cycle-macros", - "crates/sovereign-sdk/utils/zk-cycle-utils", # Module System "crates/sovereign-sdk/module-system/sov-modules-stf-blueprint", "crates/sovereign-sdk/module-system/sov-modules-rollup-blueprint", diff --git a/Makefile b/Makefile index 7047a08a0..739c962b7 100644 --- a/Makefile +++ b/Makefile @@ -84,7 +84,6 @@ lint: ## cargo check and clippy. Skip clippy on guest code since it's not suppo dprint check cargo +nightly fmt --all --check cargo check --all-targets --all-features - $(MAKE) check-fuzz SKIP_GUEST_BUILD=1 cargo clippy --all-targets --all-features lint-fix: ## dprint fmt, cargo fmt, fix and clippy. Skip clippy on guest code since it's not supported by risc0 @@ -96,9 +95,6 @@ lint-fix: ## dprint fmt, cargo fmt, fix and clippy. Skip clippy on guest code s check-features: ## Checks that project compiles with all combinations of features. cargo hack check --workspace --feature-powerset --exclude-features default --all-targets -check-fuzz: ## Checks that fuzz member compiles - $(MAKE) -C crates/sovereign-sdk/fuzz check - check-no-std: ## Checks that project compiles without std $(MAKE) -C crates/sovereign-sdk/rollup-interface $@ $(MAKE) -C crates/sovereign-sdk/module-system/sov-modules-core $@ diff --git a/bin/citrea/src/test_rpc.rs b/bin/citrea/src/test_rpc.rs index 001a5d837..75f06acae 100644 --- a/bin/citrea/src/test_rpc.rs +++ b/bin/citrea/src/test_rpc.rs @@ -5,10 +5,11 @@ use reqwest::header::CONTENT_TYPE; use sha2::Digest; use sov_db::ledger_db::{LedgerDB, SharedLedgerOps}; use sov_db::rocks_db_config::RocksdbConfig; +use sov_db::schema::types::StoredTransaction; use sov_mock_da::MockDaSpec; #[cfg(test)] use sov_modules_api::DaSpec; -use sov_rollup_interface::stf::{SoftConfirmationReceipt, TransactionReceipt}; +use sov_rollup_interface::stf::SoftConfirmationReceipt; struct TestExpect { payload: serde_json::Value, @@ -100,12 +101,11 @@ fn test_helper( }); } -fn batch2_tx_receipts() -> (Vec>, Vec>) { +fn batch2_tx_receipts() -> (Vec, Vec>) { let receipts = (0..260u64) - .map(|i| TransactionReceipt:: { - tx_hash: sha2::Sha256::digest(i.to_string()).into(), - events: vec![], - receipt: 0, + .map(|i| StoredTransaction { + hash: sha2::Sha256::digest(i.to_string()).into(), + body: Some(b"tx body".to_vec()), }) .collect(); let bodies = (0..260u64).map(|_| b"tx body".to_vec()).collect(); @@ -144,7 +144,7 @@ fn regular_test_helper(payload: serde_json::Value, expected: &serde_json::Value) soft_confirmation_signature: vec![], hash: ::sha2::Sha256::digest(b"batch_receipt2").into(), prev_hash: ::sha2::Sha256::digest(b"prev_batch_receipt2").into(), - tx_hashes: batch_2_receipts.iter().map(|r| r.tx_hash).collect(), + tx_hashes: batch_2_receipts.iter().map(|r| r.hash).collect(), pub_key: vec![], deposit_data: vec!["c44444".as_bytes().to_vec()], l1_fee_rate: 0, diff --git a/crates/fullnode/src/runner.rs b/crates/fullnode/src/runner.rs index 6cd96560b..0df88158a 100644 --- a/crates/fullnode/src/runner.rs +++ b/crates/fullnode/src/runner.rs @@ -25,7 +25,6 @@ use sov_rollup_interface::da::{BlockHeaderTrait, DaSpec}; use sov_rollup_interface::fork::ForkManager; use sov_rollup_interface::services::da::{DaService, SlotData}; use sov_rollup_interface::spec::SpecId; -pub use sov_rollup_interface::stf::BatchReceipt; use sov_rollup_interface::stf::StateTransitionFunction; use sov_rollup_interface::zk::{Zkvm, ZkvmHost}; use sov_stf_runner::InitVariant; diff --git a/crates/sovereign-sdk/adapters/mock-da/Cargo.toml b/crates/sovereign-sdk/adapters/mock-da/Cargo.toml index af78f3ac6..00288e995 100644 --- a/crates/sovereign-sdk/adapters/mock-da/Cargo.toml +++ b/crates/sovereign-sdk/adapters/mock-da/Cargo.toml @@ -17,7 +17,6 @@ borsh = { workspace = true, features = ["bytes"] } bytes = { workspace = true, features = ["serde"] } serde = { workspace = true } hex = { workspace = true } -lazy_static = { version = "1.4.0", optional = true } sha2 = { workspace = true } tokio = { workspace = true, optional = true } tokio-util = { workspace = true, optional = true } @@ -41,7 +40,6 @@ native = [ "dep:serde_json", "dep:tokio", "dep:tokio-util", - "dep:lazy_static", "dep:tokio-stream", "dep:futures", "dep:pin-project", diff --git a/crates/sovereign-sdk/full-node/db/sov-db/src/ledger_db/mod.rs b/crates/sovereign-sdk/full-node/db/sov-db/src/ledger_db/mod.rs index 25526cda5..7bc2e247e 100644 --- a/crates/sovereign-sdk/full-node/db/sov-db/src/ledger_db/mod.rs +++ b/crates/sovereign-sdk/full-node/db/sov-db/src/ledger_db/mod.rs @@ -5,8 +5,7 @@ use serde::de::DeserializeOwned; use serde::Serialize; use sov_rollup_interface::da::{DaSpec, SequencerCommitment}; use sov_rollup_interface::fork::{Fork, ForkMigration}; -use sov_rollup_interface::services::da::SlotData; -use sov_rollup_interface::stf::{BatchReceipt, SoftConfirmationReceipt, StateDiff}; +use sov_rollup_interface::stf::{SoftConfirmationReceipt, StateDiff}; use sov_rollup_interface::zk::Proof; use sov_schema_db::{Schema, SchemaBatch, SeekKeyEncoder, DB}; use tracing::instrument; @@ -63,44 +62,6 @@ pub struct ItemNumbers { pub batch_number: u64, } -/// All of the data to be committed to the ledger db for a single slot. -#[derive(Debug)] -pub struct SlotCommit { - slot_data: S, - batch_receipts: Vec>, - num_txs: usize, - num_events: usize, -} - -impl SlotCommit { - /// Returns a reference to the commit's slot_data - pub fn slot_data(&self) -> &S { - &self.slot_data - } - - /// Returns a reference to the commit's batch_receipts - pub fn batch_receipts(&self) -> &[BatchReceipt] { - &self.batch_receipts - } - - /// Create a new SlotCommit from the given slot data - pub fn new(slot_data: S) -> Self { - Self { - slot_data, - batch_receipts: vec![], - num_txs: 0, - num_events: 0, - } - } - /// Add a `batch` (of transactions) to the commit - pub fn add_batch(&mut self, batch: BatchReceipt) { - self.num_txs += batch.tx_receipts.len(); - let events_this_batch: usize = batch.tx_receipts.iter().map(|r| r.events.len()).sum(); - self.batch_receipts.push(batch); - self.num_events += events_this_batch; - } -} - impl LedgerDB { /// Open a [`LedgerDB`] (backed by RocksDB) at the specified path. /// Will take optional column families, used for migration purposes. diff --git a/crates/sovereign-sdk/full-node/sov-stf-runner/src/mock/mod.rs b/crates/sovereign-sdk/full-node/sov-stf-runner/src/mock/mod.rs index 66fdd7a05..d1bbc262f 100644 --- a/crates/sovereign-sdk/full-node/sov-stf-runner/src/mock/mod.rs +++ b/crates/sovereign-sdk/full-node/sov-stf-runner/src/mock/mod.rs @@ -1,12 +1,10 @@ -use std::marker::PhantomData; - use sov_modules_api::default_context::DefaultContext; use sov_modules_api::transaction::Transaction; use sov_rollup_interface::da::DaSpec; use sov_rollup_interface::spec::SpecId; use sov_rollup_interface::stf::{ - ApplySequencerCommitmentsOutput, BatchReceipt, SlotResult, SoftConfirmationResult, - StateTransitionError, StateTransitionFunction, + ApplySequencerCommitmentsOutput, SoftConfirmationResult, StateTransitionError, + StateTransitionFunction, }; /// A mock implementation of the [`StateTransitionFunction`] @@ -32,38 +30,6 @@ impl StateTransitionFunction for MockStf { ([], ()) } - fn apply_slot<'a, I>( - &self, - _current_spec: SpecId, - _pre_state_root: &[u8; 0], - _base_state: Self::PreState, - _witness: Self::Witness, - _slot_header: &Da::BlockHeader, - _blobs: I, - ) -> SlotResult< - Self::StateRoot, - Self::ChangeSet, - Self::BatchReceiptContents, - Self::TxReceiptContents, - Self::Witness, - > - where - I: IntoIterator, - { - SlotResult { - state_root: [], - change_set: (), - batch_receipts: vec![BatchReceipt { - hash: [0; 32], - prev_hash: [0; 32], - tx_receipts: vec![], - phantom_data: PhantomData, - }], - witness: (), - state_diff: vec![], - } - } - fn apply_soft_confirmation( &mut self, _current_spec: SpecId, diff --git a/crates/sovereign-sdk/fuzz/Cargo.lock b/crates/sovereign-sdk/fuzz/Cargo.lock deleted file mode 100644 index f82b6c27a..000000000 --- a/crates/sovereign-sdk/fuzz/Cargo.lock +++ /dev/null @@ -1,2794 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[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 = "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 = "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 = "arbitrary" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d5a26814d8dcb93b0e5a0ff3c6d80a8843bafb21b39e8e18a6f05471870e110" -dependencies = [ - "derive_arbitrary", -] - -[[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.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" - -[[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.75", -] - -[[package]] -name = "atomic-waker" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" - -[[package]] -name = "autocfg" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" - -[[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", -] - -[[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 = "bcs" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85b6598a2f5d564fb7855dc6b06fd1c38cff5a72bd8b863a4d021938497b440a" -dependencies = [ - "serde", - "thiserror", -] - -[[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", - "cexpr", - "clang-sys", - "itertools 0.12.1", - "lazy_static", - "lazycell", - "proc-macro2", - "quote", - "regex", - "rustc-hash 1.1.0", - "shlex", - "syn 2.0.75", -] - -[[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 = "blake2" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" -dependencies = [ - "digest", -] - -[[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", -] - -[[package]] -name = "borsh" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6362ed55def622cddc70a4746a68554d7b687713770de539e59a739b249f8ed" -dependencies = [ - "borsh-derive", - "bytes", - "cfg_aliases", -] - -[[package]] -name = "borsh-derive" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3ef8005764f53cd4dca619f5bf64cafd4664dada50ece25e4d81de54c80cc0b" -dependencies = [ - "once_cell", - "proc-macro-crate", - "proc-macro2", - "quote", - "syn 2.0.75", - "syn_derive", -] - -[[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" - -[[package]] -name = "bzip2-sys" -version = "0.1.11+1.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc" -dependencies = [ - "cc", - "libc", - "pkg-config", -] - -[[package]] -name = "cc" -version = "1.1.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72db2f7947ecee9b03b510377e8bb9077afa27176fdbff55c51027e976fdcc48" -dependencies = [ - "jobserver", - "libc", - "shlex", -] - -[[package]] -name = "cesu8" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" - -[[package]] -name = "cexpr" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" -dependencies = [ - "nom", -] - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "cfg_aliases" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" - -[[package]] -name = "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.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed6719fffa43d0d87e5fd8caeab59be1554fb028cd30edc88fc4369b17971019" -dependencies = [ - "clap_builder", - "clap_derive", -] - -[[package]] -name = "clap_builder" -version = "4.5.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "216aec2b177652e3846684cbfe25c9964d18ec45234f0f5da5157b207ed1aab6" -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.75", -] - -[[package]] -name = "clap_lex" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" - -[[package]] -name = "colorchoice" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0" - -[[package]] -name = "combine" -version = "4.6.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" -dependencies = [ - "bytes", - "memchr", -] - -[[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.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" - -[[package]] -name = "cpufeatures" -version = "0.2.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51e852e6dc9a5bed1fae92dd2375037bf2b768725bf3be87811edee3249d09ad" -dependencies = [ - "libc", -] - -[[package]] -name = "crypto-bigint" -version = "0.5.5" -source = "git+https://github.com/risc0/RustCrypto-crypto-bigint?tag=v0.5.5-risczero.0#3ab63a6f1048833f7047d5a50532e4a4cc789384" -dependencies = [ - "getrandom", - "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 = "curve25519-dalek" -version = "4.1.2" -source = "git+https://github.com/risc0/curve25519-dalek?tag=curve25519-4.1.2-risczero.0#3dccc5b71b806f500e73829e2a5cbfe288cce2a0" -dependencies = [ - "cfg-if", - "cpufeatures", - "crypto-bigint", - "curve25519-dalek-derive", - "digest", - "fiat-crypto", - "hex", - "platforms", - "rustc_version", - "subtle", - "zeroize", -] - -[[package]] -name = "curve25519-dalek-derive" -version = "0.1.1" -source = "git+https://github.com/risc0/curve25519-dalek?tag=curve25519-4.1.2-risczero.0#3dccc5b71b806f500e73829e2a5cbfe288cce2a0" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[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 = "derive_arbitrary" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[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", - "syn 2.0.75", -] - -[[package]] -name = "digest" -version = "0.10.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" -dependencies = [ - "block-buffer", - "crypto-common", - "subtle", -] - -[[package]] -name = "dyn-clone" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" - -[[package]] -name = "ed25519" -version = "2.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" -dependencies = [ - "pkcs8", - "serde", - "signature", -] - -[[package]] -name = "ed25519-dalek" -version = "2.1.1" -source = "git+https://github.com/risc0/curve25519-dalek?tag=curve25519-4.1.2-risczero.0#3dccc5b71b806f500e73829e2a5cbfe288cce2a0" -dependencies = [ - "curve25519-dalek", - "ed25519", - "rand_core", - "serde", - "sha2", - "subtle", - "zeroize", -] - -[[package]] -name = "either" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" - -[[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 = "fastrand" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" - -[[package]] -name = "fiat-crypto" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[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 = "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-macro" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[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-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 = "generic-array" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = [ - "typenum", - "version_check", -] - -[[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 = "glob" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" - -[[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", - "indexmap", - "slab", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "hashbrown" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" -dependencies = [ - "ahash", -] - -[[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 = "hermit-abi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" - -[[package]] -name = "hex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" -dependencies = [ - "serde", -] - -[[package]] -name = "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 = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" -dependencies = [ - "bytes", - "http", -] - -[[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", - "http-body", - "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 = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05" -dependencies = [ - "bytes", - "futures-channel", - "futures-util", - "h2", - "http", - "http-body", - "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", - "hyper", - "hyper-util", - "log", - "rustls", - "rustls-pki-types", - "tokio", - "tokio-rustls", - "tower-service", -] - -[[package]] -name = "hyper-util" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cde7055719c54e36e95e8719f95883f22072a48ede39db7fc17a4e1d5281e9b9" -dependencies = [ - "bytes", - "futures-channel", - "futures-util", - "http", - "http-body", - "hyper", - "pin-project-lite", - "socket2", - "tokio", - "tower", - "tower-service", - "tracing", -] - -[[package]] -name = "ics23" -version = "0.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18798160736c1e368938ba6967dbcb3c7afb3256b442a5506ba5222eebb68a5a" -dependencies = [ - "anyhow", - "blake2", - "blake3", - "bytes", - "hex", - "informalsystems-pbjson", - "prost", - "ripemd", - "serde", - "sha2", - "sha3", -] - -[[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 = "indexmap" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93ead53efc7ea8ed3cfb0c79fc8023fbb782a5432b52830b6518941cebe6505c" -dependencies = [ - "equivalent", - "hashbrown 0.14.5", -] - -[[package]] -name = "informalsystems-pbjson" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9aa4a0980c8379295100d70854354e78df2ee1c6ca0f96ffe89afeb3140e3a3d" -dependencies = [ - "base64 0.21.7", - "serde", -] - -[[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 = "itoa" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" - -[[package]] -name = "jmt" -version = "0.10.0" -source = "git+https://github.com/penumbra-zone/jmt.git?rev=fd1c8ef#fd1c8ef99913663eb801576a9b13a31523861d87" -dependencies = [ - "anyhow", - "borsh", - "digest", - "hashbrown 0.13.2", - "hex", - "ics23", - "itertools 0.10.5", - "mirai-annotations", - "num-derive", - "num-traits", - "serde", - "sha2", - "thiserror", - "tracing", -] - -[[package]] -name = "jni" -version = "0.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6df18c2e3db7e453d3c6ac5b3e9d5182664d28788126d39b91f2d1e22b017ec" -dependencies = [ - "cesu8", - "combine", - "jni-sys", - "log", - "thiserror", - "walkdir", -] - -[[package]] -name = "jni-sys" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" - -[[package]] -name = "jobserver" -version = "0.1.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" -dependencies = [ - "libc", -] - -[[package]] -name = "jsonrpsee" -version = "0.24.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ec465b607a36dc5dd45d48b7689bc83f679f66a3ac6b6b21cc787a11e0f8685" -dependencies = [ - "jsonrpsee-core", - "jsonrpsee-http-client", - "jsonrpsee-proc-macros", - "jsonrpsee-server", - "jsonrpsee-types", - "tokio", - "tracing", -] - -[[package]] -name = "jsonrpsee-core" -version = "0.24.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e942c55635fbf5dc421938b8558a8141c7e773720640f4f1dbe1f4164ca4e221" -dependencies = [ - "async-trait", - "bytes", - "futures-util", - "http", - "http-body", - "http-body-util", - "jsonrpsee-types", - "parking_lot", - "rand", - "rustc-hash 2.0.0", - "serde", - "serde_json", - "thiserror", - "tokio", - "tracing", -] - -[[package]] -name = "jsonrpsee-http-client" -version = "0.24.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e33774602df12b68a2310b38a535733c477ca4a498751739f89fe8dbbb62ec4c" -dependencies = [ - "async-trait", - "base64 0.22.1", - "http-body", - "hyper", - "hyper-rustls", - "hyper-util", - "jsonrpsee-core", - "jsonrpsee-types", - "rustls", - "rustls-platform-verifier", - "serde", - "serde_json", - "thiserror", - "tokio", - "tower", - "tracing", - "url", -] - -[[package]] -name = "jsonrpsee-proc-macros" -version = "0.24.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b07a2daf52077ab1b197aea69a5c990c060143835bf04c77070e98903791715" -dependencies = [ - "heck", - "proc-macro-crate", - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "jsonrpsee-server" -version = "0.24.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "038fb697a709bec7134e9ccbdbecfea0e2d15183f7140254afef7c5610a3f488" -dependencies = [ - "futures-util", - "http", - "http-body", - "http-body-util", - "hyper", - "hyper-util", - "jsonrpsee-core", - "jsonrpsee-types", - "pin-project", - "route-recognizer", - "serde", - "serde_json", - "soketto", - "thiserror", - "tokio", - "tokio-stream", - "tokio-util", - "tower", - "tracing", -] - -[[package]] -name = "jsonrpsee-types" -version = "0.24.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23b67d6e008164f027afbc2e7bb79662650158d26df200040282d2aa1cbb093b" -dependencies = [ - "http", - "serde", - "serde_json", - "thiserror", -] - -[[package]] -name = "keccak" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" -dependencies = [ - "cpufeatures", -] - -[[package]] -name = "lazy_static" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" - -[[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.158" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439" - -[[package]] -name = "libfuzzer-sys" -version = "0.4.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a96cfd5557eb82f2b83fed4955246c988d331975a002961b07c81584d107e7f7" -dependencies = [ - "arbitrary", - "cc", - "once_cell", -] - -[[package]] -name = "libloading" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4979f22fdb869068da03c9f7528f8297c6fd2606bc3a4affe42e6a823fdb8da4" -dependencies = [ - "cfg-if", - "windows-targets", -] - -[[package]] -name = "libm" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" - -[[package]] -name = "librocksdb-sys" -version = "0.16.0+8.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce3d60bc059831dc1c83903fb45c103f75db65c5a7bf22272764d9cc683e348c" -dependencies = [ - "bindgen", - "bzip2-sys", - "cc", - "glob", - "libc", - "libz-sys", - "lz4-sys", -] - -[[package]] -name = "libz-sys" -version = "1.1.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdc53a7799a7496ebc9fd29f31f7df80e83c9bda5299768af5f9e59eeea74647" -dependencies = [ - "cc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "linux-raw-sys" -version = "0.4.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" - -[[package]] -name = "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 = "lz4-sys" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "109de74d5d2353660401699a4174a4ff23fcc649caf553df71933c7fb45ad868" -dependencies = [ - "cc", - "libc", -] - -[[package]] -name = "memchr" -version = "2.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" - -[[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.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" -dependencies = [ - "hermit-abi", - "libc", - "wasi", - "windows-sys 0.52.0", -] - -[[package]] -name = "mirai-annotations" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9be0862c1b3f26a88803c4a49de6889c10e608b3ee9344e6ef5b45fb37ad3d1" - -[[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 = "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-derive" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[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 = "num_cpus" -version = "1.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" -dependencies = [ - "hermit-abi", - "libc", -] - -[[package]] -name = "object" -version = "0.36.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27b64972346851a39438c60b341ebc01bba47464ae329e55cf343eb93964efd9" -dependencies = [ - "memchr", -] - -[[package]] -name = "once_cell" -version = "1.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" - -[[package]] -name = "openssl-probe" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" - -[[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", -] - -[[package]] -name = "percent-encoding" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" - -[[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.75", -] - -[[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 = "platforms" -version = "3.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e4c7666f2019727f9e8e14bf14456e99c707d780922869f1ba473eee101fa49" - -[[package]] -name = "ppv-lite86" -version = "0.2.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" -dependencies = [ - "zerocopy", -] - -[[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", - "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 = "prometheus" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d33c28a30771f7f96db69893f78b857f7450d7e0237e9c8fc6427a81bae7ed1" -dependencies = [ - "cfg-if", - "fnv", - "lazy_static", - "memchr", - "parking_lot", - "thiserror", -] - -[[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 = "proptest-derive" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf16337405ca084e9c78985114633b6827711d22b9e6ef6c6c0d665eb3f0b6e" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[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.75", -] - -[[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 = "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 = "redox_syscall" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4" -dependencies = [ - "bitflags", -] - -[[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", - "regex-syntax", -] - -[[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", -] - -[[package]] -name = "regex-syntax" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" - -[[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", - "untrusted", - "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", -] - -[[package]] -name = "rlimit" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7043b63bd0cd1aaa628e476b80e6d4023a3b50eb32789f2728908107bd0c793a" -dependencies = [ - "libc", -] - -[[package]] -name = "rocksdb" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bd13e55d6d7b8cd0ea569161127567cd587676c99f4472f779a0279aa60a7a7" -dependencies = [ - "libc", - "librocksdb-sys", -] - -[[package]] -name = "route-recognizer" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afab94fb28594581f62d981211a9a4d53cc8130bbcbbb89a0440d9b8e81a7746" - -[[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_version" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" -dependencies = [ - "semver", -] - -[[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 0.52.0", -] - -[[package]] -name = "rustls" -version = "0.23.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c58f8c84392efc0a126acce10fa59ff7b3d2ac06ab451a33f2741989b806b044" -dependencies = [ - "log", - "once_cell", - "ring", - "rustls-pki-types", - "rustls-webpki", - "subtle", - "zeroize", -] - -[[package]] -name = "rustls-native-certs" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04182dffc9091a404e0fc069ea5cd60e5b866c3adf881eff99a32d048242dffa" -dependencies = [ - "openssl-probe", - "rustls-pemfile", - "rustls-pki-types", - "schannel", - "security-framework", -] - -[[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.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc0a2ce646f8655401bb81e7927b812614bd5d91dbc968696be50603510fcaf0" - -[[package]] -name = "rustls-platform-verifier" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93bda3f493b9abe5b93b3e7e3ecde0df292f2bd28c0296b90586ee0055ff5123" -dependencies = [ - "core-foundation", - "core-foundation-sys", - "jni", - "log", - "once_cell", - "rustls", - "rustls-native-certs", - "rustls-platform-verifier-android", - "rustls-webpki", - "security-framework", - "security-framework-sys", - "webpki-roots", - "winapi", -] - -[[package]] -name = "rustls-platform-verifier-android" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f" - -[[package]] -name = "rustls-webpki" -version = "0.102.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e6b52d4fda176fd835fdc55a835d4a89b8499cad995885a21149d5ad62f852e" -dependencies = [ - "ring", - "rustls-pki-types", - "untrusted", -] - -[[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 = "same-file" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" -dependencies = [ - "winapi-util", -] - -[[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 = "schemars" -version = "0.8.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09c024468a378b7e36765cd36702b7a90cc3cba11654f6685c8f233408e89e92" -dependencies = [ - "dyn-clone", - "schemars_derive", - "serde", - "serde_json", -] - -[[package]] -name = "schemars_derive" -version = "0.8.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1eee588578aff73f856ab961cd2f79e36bc45d7ded33a7562adba4667aecc0e" -dependencies = [ - "proc-macro2", - "quote", - "serde_derive_internals", - "syn 2.0.75", -] - -[[package]] -name = "scopeguard" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" - -[[package]] -name = "security-framework" -version = "2.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" -dependencies = [ - "bitflags", - "core-foundation", - "core-foundation-sys", - "libc", - "num-bigint", - "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 = "1.0.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" - -[[package]] -name = "serde" -version = "1.0.208" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cff085d2cb684faa248efb494c39b68e522822ac0de72ccf08109abde717cfb2" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.208" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24008e81ff7613ed8e5ba0cfaf24e2c2f1e5b8a0495711e44fcd4882fca62bcf" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "serde_derive_internals" -version = "0.29.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "serde_json" -version = "1.0.125" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83c8e735a073ccf5be70aa8066aa984eaf2fa000db6c8d0100ae605b366d31ed" -dependencies = [ - "itoa", - "memchr", - "ryu", - "serde", -] - -[[package]] -name = "sha1" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest", -] - -[[package]] -name = "sha2" -version = "0.10.8" -source = "git+https://github.com/risc0/RustCrypto-hashes?tag=sha2-v0.10.8-risczero.0#244dc3b08788f7a4ccce14c66896ae3b4f24c166" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest", -] - -[[package]] -name = "sha3" -version = "0.10.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" -dependencies = [ - "digest", - "keccak", -] - -[[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 = [ - "rand_core", -] - -[[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 = "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 = "soketto" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37468c595637c10857701c990f93a40ce0e357cedb0953d1c26c8d8027f9bb53" -dependencies = [ - "base64 0.22.1", - "bytes", - "futures", - "http", - "httparse", - "log", - "rand", - "sha1", -] - -[[package]] -name = "sov-accounts" -version = "0.5.0-rc.1" -dependencies = [ - "arbitrary", - "borsh", - "clap", - "jsonrpsee", - "proptest", - "proptest-derive", - "schemars", - "serde", - "serde_json", - "sov-modules-api", - "sov-state", - "thiserror", -] - -[[package]] -name = "sov-db" -version = "0.5.0-rc.1" -dependencies = [ - "anyhow", - "bincode", - "borsh", - "byteorder", - "hex", - "jmt", - "num_cpus", - "rlimit", - "rocksdb", - "serde", - "sov-rollup-interface", - "sov-schema-db", - "tempfile", - "tokio", - "tracing", -] - -[[package]] -name = "sov-modules-api" -version = "0.5.0-rc.1" -dependencies = [ - "anyhow", - "arbitrary", - "bech32", - "borsh", - "clap", - "derive_more", - "digest", - "ed25519-dalek", - "hex", - "jmt", - "jsonrpsee", - "proptest", - "proptest-derive", - "rand", - "schemars", - "serde", - "serde_json", - "sha2", - "sov-modules-core", - "sov-modules-macros", - "sov-prover-storage-manager", - "sov-rollup-interface", - "sov-state", - "thiserror", -] - -[[package]] -name = "sov-modules-core" -version = "0.5.0-rc.1" -dependencies = [ - "anyhow", - "arbitrary", - "bech32", - "borsh", - "derive_more", - "digest", - "hex", - "jmt", - "proptest", - "proptest-derive", - "schemars", - "serde", - "sha2", - "sov-rollup-interface", - "thiserror", -] - -[[package]] -name = "sov-modules-macros" -version = "0.5.0-rc.1" -dependencies = [ - "anyhow", - "borsh", - "jsonrpsee", - "proc-macro2", - "quote", - "serde_json", - "syn 1.0.109", -] - -[[package]] -name = "sov-prover-storage-manager" -version = "0.5.0-rc.1" -dependencies = [ - "anyhow", - "sha2", - "sov-db", - "sov-rollup-interface", - "sov-schema-db", - "sov-state", - "tracing", -] - -[[package]] -name = "sov-rollup-interface" -version = "0.5.0-rc.1" -dependencies = [ - "anyhow", - "arbitrary", - "async-trait", - "borsh", - "bytes", - "digest", - "futures", - "hex", - "proptest", - "serde", - "sha2", - "thiserror", - "tokio", - "tracing", -] - -[[package]] -name = "sov-schema-db" -version = "0.5.0-rc.1" -dependencies = [ - "anyhow", - "once_cell", - "prometheus", - "rocksdb", - "thiserror", - "tokio", - "tracing", -] - -[[package]] -name = "sov-state" -version = "0.5.0-rc.1" -dependencies = [ - "anyhow", - "arbitrary", - "bcs", - "borsh", - "jmt", - "proptest", - "proptest-derive", - "serde", - "sha2", - "sov-db", - "sov-modules-core", - "sov-rollup-interface", -] - -[[package]] -name = "sovereign-sdk-fuzz" -version = "0.5.0-rc.1" -dependencies = [ - "libfuzzer-sys", - "rand", - "serde_json", - "sov-accounts", - "sov-modules-api", - "sov-prover-storage-manager", - "sov-state", - "tempfile", -] - -[[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 = "strsim" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" - -[[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.75" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6af063034fc1935ede7be0122941bafa9bacb949334d090b77ca98b5817c7d9" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn_derive" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1329189c02ff984e9736652b1631330da25eaa6bc639089ed4915d25446cbe7b" -dependencies = [ - "proc-macro-error", - "proc-macro2", - "quote", - "syn 2.0.75", -] - -[[package]] -name = "tempfile" -version = "3.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64" -dependencies = [ - "cfg-if", - "fastrand", - "once_cell", - "rustix", - "windows-sys 0.59.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.75", -] - -[[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.75", -] - -[[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-stream" -version = "0.1.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af" -dependencies = [ - "futures-core", - "pin-project-lite", - "tokio", - "tokio-util", -] - -[[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-io", - "futures-sink", - "pin-project-lite", - "tokio", -] - -[[package]] -name = "toml_datetime" -version = "0.6.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" - -[[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 = "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.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.75", -] - -[[package]] -name = "tracing-core" -version = "0.1.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" -dependencies = [ - "once_cell", -] - -[[package]] -name = "try-lock" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" - -[[package]] -name = "typenum" -version = "1.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" - -[[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 = "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 = "vcpkg" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - -[[package]] -name = "version_check" -version = "0.9.5" -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 = "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-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets", -] - -[[package]] -name = "windows-sys" -version = "0.59.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" -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 = "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.75", -] - -[[package]] -name = "zeroize" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" diff --git a/crates/sovereign-sdk/fuzz/Cargo.toml b/crates/sovereign-sdk/fuzz/Cargo.toml deleted file mode 100644 index 8a005df0c..000000000 --- a/crates/sovereign-sdk/fuzz/Cargo.toml +++ /dev/null @@ -1,55 +0,0 @@ -[package] -name = "sovereign-sdk-fuzz" -version = "0.5.0-rc.1" -publish = false -edition = "2021" - -[package.metadata] -cargo-fuzz = true - -[dependencies] -libfuzzer-sys = "0.4" -serde_json = "1" -tempfile = "3" -rand = "0.8" - -# Sovereign-maintained dependencies. -sov-modules-api = { path = "../module-system/sov-modules-api", features = [ - "arbitrary", - "native", -] } -sov-accounts = { path = "../module-system/module-implementations/sov-accounts", features = [ - "arbitrary", - "native", -] } -sov-state = { path = "../module-system/sov-state" } -sov-prover-storage-manager = { path = "../full-node/sov-prover-storage-manager", features = [ - "test-utils", -] } - -# Prevent this from interfering with workspaces. -[workspace] -members = ["."] - -[[bin]] -name = "parse_address" -path = "fuzz_targets/parse_address.rs" -test = false -doc = false - -[[bin]] -name = "address_bech_32_parse_serde" -path = "fuzz_targets/address_bech_32_parse_serde.rs" -test = false -doc = false - -[[bin]] -name = "address_bech_32_try_from_bytes" -path = "fuzz_targets/address_bech_32_try_from_bytes.rs" -test = false -doc = false - -[patch.crates-io] -sha2 = { git = "https://github.com/risc0/RustCrypto-hashes", tag = "sha2-v0.10.8-risczero.0" } -ed25519-dalek = { git = "https://github.com/risc0/curve25519-dalek", tag = "curve25519-4.1.2-risczero.0" } -crypto-bigint = { git = "https://github.com/risc0/RustCrypto-crypto-bigint", tag = "v0.5.5-risczero.0" } diff --git a/crates/sovereign-sdk/fuzz/Makefile b/crates/sovereign-sdk/fuzz/Makefile deleted file mode 100644 index 207e3b09d..000000000 --- a/crates/sovereign-sdk/fuzz/Makefile +++ /dev/null @@ -1,34 +0,0 @@ -.PHONY: help - -BINARIES := $(shell awk -F'=[[:space:]]*"|"[[:space:]]*$$' '/^\[\[bin\]\]/,/^$$/{ if ($$1 ~ /name[[:space:]]*/) { print $$2 } }' Cargo.toml) -PROFILE ?= debug -ARGS ?= - -help: ## Display this help message - @awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' $(MAKEFILE_LIST) - -check: ## Checks that fuzz member compiles - cargo check - -# Needs nightly for `-Z sanitizer=address` -build-target: ## Build the target fuzz - cargo +nightly rustc --bin $(TARGET) $(ARGS) -- \ - -C debuginfo=full \ - -C debug-assertions \ - -C passes='sancov-module' \ - -C llvm-args='-sanitizer-coverage-level=3' \ - -C llvm-args='-sanitizer-coverage-inline-8bit-counters' \ - -Z sanitizer=address - -build: ## Build the fuzz targets - @for t in $(BINARIES); do \ - $(MAKE) build-target TARGET=$$t; \ - done - -targets: ## Prints all fuzz targets - @for t in $(BINARIES); do \ - echo $$t; \ - done - -run: build-target ## Run the fuzz target - ./target/$(PROFILE)/$(TARGET) -artifact_prefix=artifacts/ diff --git a/crates/sovereign-sdk/fuzz/README.md b/crates/sovereign-sdk/fuzz/README.md deleted file mode 100644 index 78efd5e93..000000000 --- a/crates/sovereign-sdk/fuzz/README.md +++ /dev/null @@ -1,66 +0,0 @@ -# LLVM's libFuzzer - -This implementation is built upon [libfuzzer-sys](https://crates.io/crates/libfuzzer-sys). For more information, check [LLVM](https://llvm.org/docs/LibFuzzer.html) documentation. - -## Build - -To build the fuzz target, run the following command: - -```sh -make build -``` - -You can build in release mode via: - -```sh -make build ARGS=--release -``` - -Some special parameters are required to build the fuzz target. As example, let's build the `namespace_group_from_b64` fuzz target: - -```sh -cargo rustc --bin namespace_group_from_b64 \ - --manifest-path fuzz/Cargo.toml -- \ - -C debuginfo=full \ - -C debug-assertions \ - -C passes='sancov-module' \ - -C llvm-args='-sanitizer-coverage-level=3' \ - -C llvm-args='-sanitizer-coverage-inline-8bit-counters' \ - -Z sanitizer=address -``` - -We don't default these options as they depend on the `rustc` version and might change in the future. For the list of available targets, check [Cargo.toml](./fuzz/Cargo.toml) under the `bin` section. We are currently not using optimized binaries as it might impact on how rocksdb is built. If you want to activate optimization, add `--release` after `rustc`. - -Unfortunately, rustc doesn't support the `--bins` argument to build multiple binaries with custom compiler directives. We have to build every target individually. Below is a convenience [sed](https://www.gnu.org/software/sed/) script to build all targets. - -```sh -for t in `sed -n '/^\[\[bin\]\]/,/^$/ { /name\s*=\s*"\(.*\)"/s//\1/p }' fuzz/Cargo.toml` ; do cargo rustc --bin $t --manifest-path fuzz/Cargo.toml -- -C debuginfo=full -C debug-assertions -C passes='sancov-module' -C llvm-args='-sanitizer-coverage-level=3' -C llvm-args='-sanitizer-coverage-inline-8bit-counters' -Z sanitizer=address ; done -``` - -## Run - -Here is a sample command to fuzz a `namespace_group_from_b64`: - -```sh -make run TARGET=namespace_group_from_b64 -``` - -To run in release mode: - -```sh -make run TARGET=namespace_group_from_b64 PROFILE=release -``` - -To list the available targets, run: - -```sh -make targets -``` - -Once built, you can run the targets under the `fuzz/target/` directory. - -```sh -./fuzz/target/debug/namespace_group_from_b64 -``` - -It will run the fuzz until you interrupt the command (i.e. `CTRL-C`), and will record crashes under `fuzz/artifacts/*/crash-*`. If you find a crash, please report a new [bug](https://github.com/Sovereign-Labs/sovereign-sdk/issues/new?assignees=&labels=&projects=&template=bug_report.md&title=). diff --git a/crates/sovereign-sdk/fuzz/artifacts/accounts_call/crash-da39a3ee5e6b4b0d3255bfef95601890afd80709 b/crates/sovereign-sdk/fuzz/artifacts/accounts_call/crash-da39a3ee5e6b4b0d3255bfef95601890afd80709 deleted file mode 100644 index e69de29bb..000000000 diff --git a/crates/sovereign-sdk/fuzz/artifacts/bank_call/crash-55fd4bd554ac3dcc6a2a2719335bd95869b9f6f5 b/crates/sovereign-sdk/fuzz/artifacts/bank_call/crash-55fd4bd554ac3dcc6a2a2719335bd95869b9f6f5 deleted file mode 100644 index f871261f076d3006f4c5d271a1ff0de1aae33033..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37 jcma#%;)>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> \ No newline at end of file diff --git a/crates/sovereign-sdk/fuzz/artifacts/crash-5e665cf3759c0aabfc3e898f6294840582421b32 b/crates/sovereign-sdk/fuzz/artifacts/crash-5e665cf3759c0aabfc3e898f6294840582421b32 deleted file mode 100644 index c1558a21a..000000000 --- a/crates/sovereign-sdk/fuzz/artifacts/crash-5e665cf3759c0aabfc3e898f6294840582421b32 +++ /dev/null @@ -1,2 +0,0 @@ - -888888888888888ª88888888888888888888 \ No newline at end of file diff --git a/crates/sovereign-sdk/fuzz/artifacts/crash-6929e000e5891085cf17a75de96dd505b6499083 b/crates/sovereign-sdk/fuzz/artifacts/crash-6929e000e5891085cf17a75de96dd505b6499083 deleted file mode 100644 index e71d37245..000000000 --- a/crates/sovereign-sdk/fuzz/artifacts/crash-6929e000e5891085cf17a75de96dd505b6499083 +++ /dev/null @@ -1,2 +0,0 @@ -ÖÖÖÖ~ÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖÖ -¥ \ No newline at end of file diff --git a/crates/sovereign-sdk/fuzz/artifacts/crash-816595d1445fb45b609cca5417ba5f537c74ab43 b/crates/sovereign-sdk/fuzz/artifacts/crash-816595d1445fb45b609cca5417ba5f537c74ab43 deleted file mode 100644 index 7c80f26e72eb1364d45b422e4d3e340425fd5ac4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35 McmdPn;$k2G00|2KLjV8( diff --git a/crates/sovereign-sdk/fuzz/artifacts/crash-98daf6c68def387cffda2937a318cdfd9e956627 b/crates/sovereign-sdk/fuzz/artifacts/crash-98daf6c68def387cffda2937a318cdfd9e956627 deleted file mode 100644 index fa179e4778a82bed18fab142638e8aaca447f27b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35 Vcmd<$VgLgu1>r!*|6stt001Py1{nYV diff --git a/crates/sovereign-sdk/fuzz/artifacts/crash-b4a051390ba551b5349b6f233930f32f9e16bd85 b/crates/sovereign-sdk/fuzz/artifacts/crash-b4a051390ba551b5349b6f233930f32f9e16bd85 deleted file mode 100644 index e74c45da32cc63ff3de7f82b13b5c9c453325e87..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37 Zcmd;D4gorh3}B$u-`~#wWivqK`~lb93xNOt diff --git a/crates/sovereign-sdk/fuzz/artifacts/crash-e5f45f193d720ae7264383fcc0763cd945120fc1 b/crates/sovereign-sdk/fuzz/artifacts/crash-e5f45f193d720ae7264383fcc0763cd945120fc1 deleted file mode 100644 index bd96e04d8..000000000 --- a/crates/sovereign-sdk/fuzz/artifacts/crash-e5f45f193d720ae7264383fcc0763cd945120fc1 +++ /dev/null @@ -1,4 +0,0 @@ - - - -òòòòòòòòòòòòòòòòòòòòòòòòòòòòòòòò \ No newline at end of file diff --git a/crates/sovereign-sdk/fuzz/artifacts/fuzz_namespace_group_from_b64/crash-2221b8862d9d37ec7c714a5df89b570c1356cdba b/crates/sovereign-sdk/fuzz/artifacts/fuzz_namespace_group_from_b64/crash-2221b8862d9d37ec7c714a5df89b570c1356cdba deleted file mode 100644 index c17cfdc13..000000000 --- a/crates/sovereign-sdk/fuzz/artifacts/fuzz_namespace_group_from_b64/crash-2221b8862d9d37ec7c714a5df89b570c1356cdba +++ /dev/null @@ -1 +0,0 @@ -zgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRzggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggegggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggRRRRggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg4 \ No newline at end of file diff --git a/crates/sovereign-sdk/fuzz/artifacts/fuzz_namespace_group_from_b64/crash-da39a3ee5e6b4b0d3255bfef95601890afd80709 b/crates/sovereign-sdk/fuzz/artifacts/fuzz_namespace_group_from_b64/crash-da39a3ee5e6b4b0d3255bfef95601890afd80709 deleted file mode 100644 index e69de29bb..000000000 diff --git a/crates/sovereign-sdk/fuzz/artifacts/fuzz_namespace_group_from_b64/crash-ef43788e032a15a049005ce4fd839b3777597338 b/crates/sovereign-sdk/fuzz/artifacts/fuzz_namespace_group_from_b64/crash-ef43788e032a15a049005ce4fd839b3777597338 deleted file mode 100644 index 80ed51c71..000000000 --- a/crates/sovereign-sdk/fuzz/artifacts/fuzz_namespace_group_from_b64/crash-ef43788e032a15a049005ce4fd839b3777597338 +++ /dev/null @@ -1 +0,0 @@ -zggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggeggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggRRRRRRRRRRRRRRRRRRRRRRRRRRRgggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg4 \ No newline at end of file diff --git a/crates/sovereign-sdk/fuzz/artifacts/slow-unit-727720324b031a1f6408810b07628b558866fb00 b/crates/sovereign-sdk/fuzz/artifacts/slow-unit-727720324b031a1f6408810b07628b558866fb00 deleted file mode 100644 index c94d0e853..000000000 --- a/crates/sovereign-sdk/fuzz/artifacts/slow-unit-727720324b031a1f6408810b07628b558866fb00 +++ /dev/null @@ -1,2 +0,0 @@ - -ïïï±±±±±±±±±±±±±±±³³³³³³³³³³“³³³ïï \ No newline at end of file diff --git a/crates/sovereign-sdk/fuzz/artifacts/slow-unit-a5b5c4ac13d3d8cbc8b4696cb715160998407a8f b/crates/sovereign-sdk/fuzz/artifacts/slow-unit-a5b5c4ac13d3d8cbc8b4696cb715160998407a8f deleted file mode 100644 index 7fa179b79..000000000 --- a/crates/sovereign-sdk/fuzz/artifacts/slow-unit-a5b5c4ac13d3d8cbc8b4696cb715160998407a8f +++ /dev/null @@ -1 +0,0 @@ -Rÿÿÿÿ diff --git a/crates/sovereign-sdk/fuzz/fuzz_targets/address_bech_32_parse_serde.rs b/crates/sovereign-sdk/fuzz/fuzz_targets/address_bech_32_parse_serde.rs deleted file mode 100644 index a01d11178..000000000 --- a/crates/sovereign-sdk/fuzz/fuzz_targets/address_bech_32_parse_serde.rs +++ /dev/null @@ -1,8 +0,0 @@ -#![no_main] - -use libfuzzer_sys::fuzz_target; -use sov_modules_api::AddressBech32; - -fuzz_target!(|data: &[u8]| { - serde_json::from_slice::(data).ok(); -}); diff --git a/crates/sovereign-sdk/fuzz/fuzz_targets/address_bech_32_try_from_bytes.rs b/crates/sovereign-sdk/fuzz/fuzz_targets/address_bech_32_try_from_bytes.rs deleted file mode 100644 index 9546a74f3..000000000 --- a/crates/sovereign-sdk/fuzz/fuzz_targets/address_bech_32_try_from_bytes.rs +++ /dev/null @@ -1,8 +0,0 @@ -#![no_main] - -use libfuzzer_sys::fuzz_target; -use sov_modules_api::AddressBech32; - -fuzz_target!(|data: &[u8]| { - let _ = AddressBech32::try_from(data); -}); diff --git a/crates/sovereign-sdk/fuzz/fuzz_targets/parse_address.rs b/crates/sovereign-sdk/fuzz/fuzz_targets/parse_address.rs deleted file mode 100644 index a5b74959d..000000000 --- a/crates/sovereign-sdk/fuzz/fuzz_targets/parse_address.rs +++ /dev/null @@ -1,15 +0,0 @@ -#![no_main] -#[macro_use] -extern crate libfuzzer_sys; - -use std::str::FromStr; - -use sov_modules_api::AddressBech32; - -fuzz_target!(|data: &[u8]| { - if let Ok(data) = std::str::from_utf8(data) { - if let Ok(addr) = AddressBech32::from_str(data) { - addr.to_string(); - } - } -}); diff --git a/crates/sovereign-sdk/module-system/sov-modules-api/src/lib.rs b/crates/sovereign-sdk/module-system/sov-modules-api/src/lib.rs index 0edaa1c1c..b74142064 100644 --- a/crates/sovereign-sdk/module-system/sov-modules-api/src/lib.rs +++ b/crates/sovereign-sdk/module-system/sov-modules-api/src/lib.rs @@ -203,10 +203,6 @@ pub mod prelude { pub use super::{StateMapAccessor, StateValueAccessor, StateVecAccessor}; } -pub mod optimistic { - pub use sov_rollup_interface::optimistic::{Attestation, ProofOfBond}; -} - pub mod da { pub use sov_rollup_interface::da::{BlockHeaderTrait, NanoSeconds, Time}; } diff --git a/crates/sovereign-sdk/module-system/sov-modules-api/src/transaction.rs b/crates/sovereign-sdk/module-system/sov-modules-api/src/transaction.rs index a3e4e2dc3..76c9e9a34 100644 --- a/crates/sovereign-sdk/module-system/sov-modules-api/src/transaction.rs +++ b/crates/sovereign-sdk/module-system/sov-modules-api/src/transaction.rs @@ -2,8 +2,6 @@ use sov_modules_core::PrivateKey; use sov_modules_core::{Context, Signature}; use sov_rollup_interface::stf::TransactionDigest; -// #[cfg(all(target_os = "zkvm", feature = "bench"))] -// use sov_zk_cycle_macros::cycle_tracker; const EXTEND_MESSAGE_LEN: usize = 2 * core::mem::size_of::(); @@ -41,7 +39,6 @@ impl Transaction { } /// Check whether the transaction has been signed correctly. - // #[cfg_attr(all(target_os = "zkvm", feature = "bench"), cycle_tracker)] pub fn verify(&self) -> anyhow::Result<()> { let mut serialized_tx = Vec::with_capacity(self.runtime_msg().len() + EXTEND_MESSAGE_LEN); diff --git a/crates/sovereign-sdk/module-system/sov-modules-stf-blueprint/src/lib.rs b/crates/sovereign-sdk/module-system/sov-modules-stf-blueprint/src/lib.rs index 0003daa57..9651e15fa 100644 --- a/crates/sovereign-sdk/module-system/sov-modules-stf-blueprint/src/lib.rs +++ b/crates/sovereign-sdk/module-system/sov-modules-stf-blueprint/src/lib.rs @@ -20,10 +20,9 @@ use sov_rollup_interface::fork::ForkManager; use sov_rollup_interface::soft_confirmation::{SignedSoftConfirmation, UnsignedSoftConfirmationV1}; use sov_rollup_interface::spec::SpecId; use sov_rollup_interface::stf::{ - ApplySequencerCommitmentsOutput, SlotResult, SoftConfirmationError, SoftConfirmationResult, + ApplySequencerCommitmentsOutput, SoftConfirmationError, SoftConfirmationResult, StateTransitionError, StateTransitionFunction, }; -pub use sov_rollup_interface::stf::{BatchReceipt, TransactionReceipt}; use sov_rollup_interface::zk::CumulativeStateDiff; use sov_state::Storage; @@ -365,27 +364,6 @@ where (genesis_hash, pre_state) } - fn apply_slot<'a, I>( - &self, - _current_spec: SpecId, - _pre_state_root: &Self::StateRoot, - _pre_state: Self::PreState, - _witness: Self::Witness, - _slot_header: &Da::BlockHeader, - _blobs: I, - ) -> SlotResult< - Self::StateRoot, - Self::ChangeSet, - Self::BatchReceiptContents, - Self::TxReceiptContents, - Self::Witness, - > - where - I: IntoIterator, - { - unimplemented!(); - } - fn apply_soft_confirmation( &mut self, current_spec: SpecId, diff --git a/crates/sovereign-sdk/rollup-interface/Cargo.toml b/crates/sovereign-sdk/rollup-interface/Cargo.toml index 252788b2b..f50089139 100644 --- a/crates/sovereign-sdk/rollup-interface/Cargo.toml +++ b/crates/sovereign-sdk/rollup-interface/Cargo.toml @@ -24,7 +24,6 @@ digest = { workspace = true } futures = { workspace = true, optional = true } hex = { workspace = true } serde = { workspace = true } -sha2 = { workspace = true, optional = true } thiserror = { workspace = true, optional = true } # TODO: Remove tokio when https://github.com/Sovereign-Labs/sovereign-sdk/issues/1161 is resolved tokio = { workspace = true, optional = true } @@ -40,7 +39,7 @@ serde_json = { workspace = true } [features] default = ["std"] native = ["std", "tokio", "futures", "tracing"] -fuzzing = ["proptest", "proptest-derive", "sha2", "std"] +fuzzing = ["proptest", "proptest-derive", "std"] testing = ["native"] arbitrary = ["dep:arbitrary"] std = [ @@ -52,6 +51,5 @@ std = [ "hex/default", "proptest?/default", "serde/default", - "sha2?/default", "thiserror", ] diff --git a/crates/sovereign-sdk/rollup-interface/src/state_machine/crypto/mod.rs b/crates/sovereign-sdk/rollup-interface/src/state_machine/crypto/mod.rs deleted file mode 100644 index 66364f544..000000000 --- a/crates/sovereign-sdk/rollup-interface/src/state_machine/crypto/mod.rs +++ /dev/null @@ -1,3 +0,0 @@ -//! Defines useful cryptographic primitives that are needed by all sovereign-sdk rollups. -mod simple_hasher; -pub use simple_hasher::NoOpHasher; diff --git a/crates/sovereign-sdk/rollup-interface/src/state_machine/crypto/simple_hasher.rs b/crates/sovereign-sdk/rollup-interface/src/state_machine/crypto/simple_hasher.rs deleted file mode 100644 index 1206cbf00..000000000 --- a/crates/sovereign-sdk/rollup-interface/src/state_machine/crypto/simple_hasher.rs +++ /dev/null @@ -1,83 +0,0 @@ -use digest::typenum::U32; -use digest::{Digest, FixedOutput, FixedOutputReset, OutputSizeUser, Reset, Update}; - -/// A [`digest::Digest`] implementation which always returns the digest -/// `[0;32]`. -pub struct NoOpHasher; - -impl OutputSizeUser for NoOpHasher { - type OutputSize = U32; -} - -impl Update for NoOpHasher { - fn update(&mut self, _data: &[u8]) {} -} - -impl Reset for NoOpHasher { - fn reset(&mut self) {} -} - -impl FixedOutput for NoOpHasher { - fn finalize_into(self, out: &mut digest::Output) { - *out = [0u8; 32].into(); - } -} - -impl FixedOutputReset for NoOpHasher { - fn finalize_into_reset(&mut self, out: &mut digest::Output) { - *out = [0u8; 32].into(); - } -} - -impl Digest for NoOpHasher { - fn new() -> Self { - Self - } - - fn new_with_prefix(_data: impl AsRef<[u8]>) -> Self { - Self - } - - fn update(&mut self, _data: impl AsRef<[u8]>) {} - - fn chain_update(self, _data: impl AsRef<[u8]>) -> Self { - Self - } - - fn finalize(self) -> digest::Output { - [0u8; 32].into() - } - - fn finalize_into(self, out: &mut digest::Output) { - ::finalize_into(self, out) - } - - fn finalize_reset(&mut self) -> digest::Output - where - Self: digest::FixedOutputReset, - { - [0u8; 32].into() - } - - fn finalize_into_reset(&mut self, out: &mut digest::Output) - where - Self: digest::FixedOutputReset, - { - ::finalize_into_reset(self, out) - } - - fn reset(&mut self) - where - Self: digest::Reset, - { - ::reset(self) - } - - fn output_size() -> usize { - 32 - } - - fn digest(_data: impl AsRef<[u8]>) -> digest::Output { - [0u8; 32].into() - } -} diff --git a/crates/sovereign-sdk/rollup-interface/src/state_machine/mod.rs b/crates/sovereign-sdk/rollup-interface/src/state_machine/mod.rs index daaf35626..0b3f783c6 100644 --- a/crates/sovereign-sdk/rollup-interface/src/state_machine/mod.rs +++ b/crates/sovereign-sdk/rollup-interface/src/state_machine/mod.rs @@ -1,6 +1,5 @@ //! Defines types, traits, and helpers that are used by the core state-machine of the rollup. //! Items in this module must be fully deterministic, since they are expected to be executed inside of zkVMs. -pub mod crypto; pub mod da; pub mod soft_confirmation; pub mod stf; @@ -11,8 +10,6 @@ pub use bytes::{Buf, BufMut, Bytes, BytesMut}; use serde::de::DeserializeOwned; use serde::Serialize; -pub mod optimistic; - /// A marker trait for general addresses. pub trait BasicAddress: Eq diff --git a/crates/sovereign-sdk/rollup-interface/src/state_machine/optimistic.rs b/crates/sovereign-sdk/rollup-interface/src/state_machine/optimistic.rs deleted file mode 100644 index ece7f648a..000000000 --- a/crates/sovereign-sdk/rollup-interface/src/state_machine/optimistic.rs +++ /dev/null @@ -1,47 +0,0 @@ -//! Utilities for building an optimistic state machine -use borsh::{BorshDeserialize, BorshSerialize}; -use serde::{Deserialize, Serialize}; - -use crate::da::DaSpec; -use crate::zk::BatchProofCircuitOutput; - -/// A proof that the attester was bonded at the transition num `transition_num`. -/// For rollups using the `jmt`, this will be a `jmt::SparseMerkleProof` -#[derive( - Debug, Clone, PartialEq, Eq, BorshSerialize, BorshDeserialize, Serialize, Deserialize, Default, -)] -pub struct ProofOfBond { - /// The transition number for which the proof of bond applies - pub claimed_transition_num: u64, - /// The actual state proof that the attester was bonded - pub proof: StateProof, -} - -/// An attestation that a particular DA layer block transitioned the rollup state to some value -#[derive( - Debug, Clone, PartialEq, Eq, BorshSerialize, BorshDeserialize, Serialize, Deserialize, Default, -)] -pub struct Attestation { - /// The alleged state root before applying the contents of the da block - pub initial_state_root: StateRoot, - /// The hash of the block in which the transition occurred - pub da_block_hash: Da::SlotHash, - /// The alleged post-state root - pub post_state_root: StateRoot, - /// A proof that the attester was bonded at some point in time before the attestation is generated - pub proof_of_bond: ProofOfBond, -} - -/// The contents of a challenge to an attestation, which are contained as a public output of the proof -/// Generic over an address type and a validity condition -#[derive(Debug, Clone, PartialEq, Eq, BorshSerialize, BorshDeserialize, Serialize, Deserialize)] -pub struct ChallengeContents { - /// The rollup address of the originator of this challenge - pub challenger_address: Address, - /// The state transition that was proven - pub state_transition: BatchProofCircuitOutput, -} - -#[derive(Debug, Clone, PartialEq, Eq, BorshSerialize, Serialize, Deserialize)] -/// This struct contains the challenge as a raw blob -pub struct Challenge<'a>(&'a [u8]); diff --git a/crates/sovereign-sdk/rollup-interface/src/state_machine/stf.rs b/crates/sovereign-sdk/rollup-interface/src/state_machine/stf.rs index ed1d11adf..f4e82521e 100644 --- a/crates/sovereign-sdk/rollup-interface/src/state_machine/stf.rs +++ b/crates/sovereign-sdk/rollup-interface/src/state_machine/stf.rs @@ -10,7 +10,6 @@ use alloc::collections::VecDeque; use alloc::string::String; use alloc::vec::Vec; use core::fmt::Debug; -use core::marker::PhantomData; use borsh::{BorshDeserialize, BorshSerialize}; use serde::de::DeserializeOwned; @@ -21,9 +20,6 @@ use crate::soft_confirmation::SignedSoftConfirmation; use crate::spec::SpecId; use crate::zk::CumulativeStateDiff; -#[cfg(any(all(test, feature = "sha2"), feature = "fuzzing"))] -pub mod fuzzing; - /// The configuration of a full node of the rollup which creates zk proofs. pub struct ProverConfig; /// The configuration used to initialize the "Verifier" of the state transition function @@ -49,38 +45,6 @@ mod sealed { impl Sealed for StandardConfig {} } -/// A receipt for a single transaction. These receipts are stored in the rollup's database -/// and may be queried via RPC. Receipts are generic over a type `R` which the rollup can use to -/// store additional data, such as the status code of the transaction or the amount of gas used.s -#[derive(Debug, Clone, Serialize, Deserialize)] -/// A receipt showing the result of a transaction -pub struct TransactionReceipt { - /// The canonical hash of this transaction - pub tx_hash: [u8; 32], - /// The events output by this transaction - pub events: Vec, - /// Any additional structured data to be saved in the database and served over RPC - /// For example, this might contain a status code. - pub receipt: R, -} - -/// A receipt for a batch of transactions. These receipts are stored in the rollup's database -/// and may be queried via RPC. Batch receipts are generic over a type `BatchReceiptContents` which the rollup -/// can use to store arbitrary typed data, like the gas used by the batch. They are also generic over a type `TxReceiptContents`, -/// since they contain a vectors of [`TransactionReceipt`]s. -#[derive(Debug, Clone, Serialize, Deserialize)] -/// A receipt giving the outcome of a batch of transactions -pub struct BatchReceipt { - /// The canonical hash of this batch - pub hash: [u8; 32], - /// The canonical hash of previous batch - pub prev_hash: [u8; 32], - /// The receipts of all the transactions in this batch. - pub tx_receipts: Vec>, - /// Any additional structured data to be saved in the database and served over RPC - pub phantom_data: PhantomData, -} - /// The output of the function that applies sequencer commitments to the state in the verifier pub struct ApplySequencerCommitmentsOutput { /// Final state root after all sequencer commitments were applied @@ -123,25 +87,6 @@ pub struct SoftConfirmationReceipt { /// A diff of the state, represented as a list of key-value pairs. pub type StateDiff = Vec<(Vec, Option>)>; -/// Result of applying a slot to current state -/// Where: -/// - S - generic for state root -/// - B - generic for batch receipt contents -/// - T - generic for transaction receipt contents -/// - W - generic for witness -pub struct SlotResult { - /// Final state root after all blobs were applied - pub state_root: S, - /// Container for all state alterations that happened during slot execution - pub change_set: Cs, - /// Receipt for each applied batch - pub batch_receipts: Vec>, - /// Witness after applying the whole block - pub witness: W, - /// State diff - pub state_diff: StateDiff, -} - /// Helper struct which contains initial and final state roots. pub struct StateRootTransition { /// Initial state root @@ -239,39 +184,6 @@ pub trait StateTransitionFunction { params: Self::GenesisParams, ) -> (Self::StateRoot, Self::ChangeSet); - /// Called at each **DA-layer block** - whether or not that block contains any - /// data relevant to the rollup. - /// If slot is started in Full Node mode, default witness should be provided. - /// If slot is started in Zero Knowledge mode, witness from execution should be provided. - /// - /// Applies batches of transactions to the rollup, - /// slashing the sequencer who proposed the blob on failure. - /// The blobs are contained into a slot whose data is contained within the `slot_data` parameter, - /// this parameter is mainly used within the begin_slot hook. - /// The concrete blob type is defined by the DA layer implementation, - /// which is why we use a generic here instead of an associated type. - /// - /// Commits state changes to the database - #[allow(clippy::type_complexity)] - #[allow(clippy::too_many_arguments)] - fn apply_slot<'a, I>( - &self, - current_spec: SpecId, - pre_state_root: &Self::StateRoot, - pre_state: Self::PreState, - witness: Self::Witness, - slot_header: &Da::BlockHeader, - blobs: I, - ) -> SlotResult< - Self::StateRoot, - Self::ChangeSet, - Self::BatchReceiptContents, - Self::TxReceiptContents, - Self::Witness, - > - where - I: IntoIterator; - /// Called at each **Soft confirmation block** /// If slot is started in Full Node mode, default witness should be provided. /// If slot is started in Zero Knowledge mode, witness from execution should be provided. diff --git a/crates/sovereign-sdk/rollup-interface/src/state_machine/stf/fuzzing.rs b/crates/sovereign-sdk/rollup-interface/src/state_machine/stf/fuzzing.rs deleted file mode 100644 index 974c35c93..000000000 --- a/crates/sovereign-sdk/rollup-interface/src/state_machine/stf/fuzzing.rs +++ /dev/null @@ -1,202 +0,0 @@ -//! Implements fuzzing strategies for structs in the stf module - -use core::marker::PhantomData; - -use digest::typenum::U32; -use digest::Digest; -use proptest::prelude::{any, Arbitrary}; -use proptest::strategy::{BoxedStrategy, Strategy}; - -use super::{BatchReceipt, Event, TransactionReceipt}; - -/// An object-safe hashing trait, which is blanket implemented for all -/// [`digest::Digest`] implementors. -pub trait FuzzHasher { - /// Hash the provided data - fn hash(&self, data: &[u8]) -> [u8; 32]; -} - -/// The default hasher to use for fuzzing -fn default_fuzz_hasher() -> Box { - Box::new(sha2::Sha256::new()) -} - -impl + Clone> FuzzHasher for T { - fn hash(&self, data: &[u8]) -> [u8; 32] { - let mut hasher = T::new(); - hasher.update(data); - hasher.finalize().into() - } -} - -/// A special merkle hasher used only for fuzz tests. This hasher sacrifices some -/// efficiency for object safety. -struct FuzzMerkleHasher<'a> { - #[allow(clippy::borrowed_box)] - hasher: &'a Box, -} - -impl<'a> FuzzMerkleHasher<'a> { - fn empty_root(&mut self) -> [u8; 32] { - self.hasher.hash(&[]) - } - - fn leaf_hash(&mut self, bytes: impl AsRef<[u8]>) -> [u8; 32] { - let bytes = bytes.as_ref(); - let mut input = Vec::with_capacity(1 + bytes.len()); - input.push(0); - input.extend_from_slice(bytes); - self.hasher.hash(input.as_ref()) - } - - fn inner_hash(&mut self, left: &[u8; 32], right: &[u8; 32]) -> [u8; 32] { - let mut input = Vec::with_capacity(32 + 32 + 1); - input.push(1); - input.extend_from_slice(left); - input.extend_from_slice(right); - self.hasher.hash(&input) - } - - /// A trait describing how to build a merkle tree from a slice of bytes. The default implementation - /// returns an RFC6962-style tree for ease of updating. - pub fn build_merkle_tree(&mut self, byte_vecs: &[impl AsRef<[u8]>]) -> [u8; 32] { - let length = byte_vecs.len(); - match length { - 0 => self.empty_root(), - 1 => self.leaf_hash(byte_vecs[0].as_ref()), - _ => { - let split = length.next_power_of_two() / 2; - let left = self.build_merkle_tree(&byte_vecs[..split]); - let right = self.build_merkle_tree(&byte_vecs[split..]); - self.inner_hash(&left, &right) - } - } - } -} - -/// How frequently to generate a particular variant of an enum. -pub enum Frequency { - /// The variant will always be generated - Always, - /// The variant will sometimes be generated - Sometimes, - /// The variant will never be generated - Never, -} - -/// The arguments needed to construct a transaction receipt generation strategy -pub struct TransactionReceiptStrategyArgs { - /// An optional SimpleHasher to use construct the tx hash from the `body_to_save`. - /// If no hasher is provided or the tx `body_to_save` is `None`, the hash will be populated - /// with random bytes - pub hasher: Option>, - /// The maximum number of events to generate for this transaction. Defaults to 10 - pub max_events: usize, - /// Whether to generate entries for the `body_to_save` field of the `TransactionReceipt`. - /// Values are guaranteed to be `Some` if this is `Always`, and `None` if this is `Never`. - pub generate_tx_bodies: Frequency, -} - -impl Default for TransactionReceiptStrategyArgs { - fn default() -> Self { - Self { - hasher: Some(default_fuzz_hasher()), - max_events: 10, - generate_tx_bodies: Frequency::Sometimes, - } - } -} - -impl proptest::arbitrary::Arbitrary - for TransactionReceipt -{ - type Parameters = TransactionReceiptStrategyArgs; - type Strategy = BoxedStrategy; - - fn arbitrary_with(args: Self::Parameters) -> Self::Strategy { - { - let tx_body_strategy = match args.generate_tx_bodies { - Frequency::Always => any::>().prop_map(Some).boxed(), - Frequency::Sometimes => any::>>().boxed(), - Frequency::Never => proptest::collection::vec(any::(), 0..0) - .prop_map(|_| None) - .boxed(), - }; - ( - any::<[u8; 32]>(), - tx_body_strategy, - proptest::collection::vec(any::(), 0..args.max_events), - any::(), - ) - .prop_map(move |(tx_hash, body_to_save, events, receipt)| { - let tx_hash = match (args.hasher.as_ref(), body_to_save.as_ref()) { - (Some(hasher), Some(body)) => hasher.hash(body), - _ => tx_hash, - }; - Self { - tx_hash, - events, - receipt, - } - }) - .boxed() - } - } -} - -/// The arguments needed to construct a batch receipt generation strategy. -pub struct BatchReceiptStrategyArgs { - /// An optional [`digest::Digest`] to use construct the tx hash from the `body_to_save`. - /// If no hasher is provided or the tx `body_to_save` is `None`, the hash will be populated - /// with random bytes - pub hasher: Option>, - /// The maximum number of events to generate for this transaction. Defaults to 10 - pub max_txs: usize, - /// The arguments to use for generating transactions in this batch - pub transaction_strategy_args: TransactionReceiptStrategyArgs, -} - -impl Default for BatchReceiptStrategyArgs { - fn default() -> Self { - Self { - hasher: Some(default_fuzz_hasher()), - max_txs: 10, - transaction_strategy_args: Default::default(), - } - } -} - -impl Arbitrary for BatchReceipt { - type Parameters = BatchReceiptStrategyArgs; - type Strategy = BoxedStrategy; - - fn arbitrary_with(args: Self::Parameters) -> Self::Strategy { - { - ( - any::<[u8; 32]>(), - proptest::collection::vec( - TransactionReceipt::arbitrary_with(args.transaction_strategy_args), - 0..args.max_txs, - ), - any::(), - ) - .prop_map(move |(batch_hash, txs, _receipt)| { - let batch_hash = match args.hasher { - Some(ref hasher) => { - let mut merkle_hasher = FuzzMerkleHasher { hasher }; - let tx_hashes = txs.iter().map(|tx| &tx.tx_hash).collect::>(); - merkle_hasher.build_merkle_tree(&tx_hashes) - } - None => batch_hash, - }; - Self { - hash: batch_hash, - prev_hash: batch_hash, - tx_receipts: txs, - phantom_data: PhantomData, - } - }) - .boxed() - } - } -} diff --git a/crates/sovereign-sdk/rollup-interface/src/state_machine/storage.rs b/crates/sovereign-sdk/rollup-interface/src/state_machine/storage.rs deleted file mode 100644 index 8b1378917..000000000 --- a/crates/sovereign-sdk/rollup-interface/src/state_machine/storage.rs +++ /dev/null @@ -1 +0,0 @@ - diff --git a/crates/sovereign-sdk/utils/README.md b/crates/sovereign-sdk/utils/README.md deleted file mode 100644 index 2ff10d9a2..000000000 --- a/crates/sovereign-sdk/utils/README.md +++ /dev/null @@ -1,4 +0,0 @@ -## Utils -This folder contains a general set of utils that are used as helpers for the SDK. -* Non-SDK macros (eg: macro for wrapping a function to track the number of risc0 cycles) -* Binary to perform stack analysis on the risc0 ELF and count the number of instruction cyles \ No newline at end of file diff --git a/crates/sovereign-sdk/utils/zk-cycle-macros/Cargo.toml b/crates/sovereign-sdk/utils/zk-cycle-macros/Cargo.toml deleted file mode 100644 index 75bc8e28b..000000000 --- a/crates/sovereign-sdk/utils/zk-cycle-macros/Cargo.toml +++ /dev/null @@ -1,37 +0,0 @@ -[package] -name = "sov-zk-cycle-macros" -description = "cycle counting utils" -authors = { workspace = true } -edition = { workspace = true } -homepage = { workspace = true } -license = { workspace = true } -repository = { workspace = true } - -version = { workspace = true } -readme = "README.md" -resolver = "2" -autotests = false - -[lib] -proc-macro = true - -[[test]] -name = "tests" -path = "tests/all_tests.rs" - -[dependencies] -syn = { version = "2.0", features = ["full"] } -quote = "1.0" -proc-macro2 = "1.0" - -[dev-dependencies] -trybuild = "1.0" -sov-zk-cycle-macros = { path = "../../utils/zk-cycle-macros" } -risc0-zkvm = { workspace = true, default-features = false, features = ["std"] } -risc0-zkvm-platform = { workspace = true } - -[features] -bench = [] - -[package.metadata.cargo-udeps.ignore] -development = ["risc0-zkvm", "risc0-zkvm-platform", "sov-zk-cycle-macros"] diff --git a/crates/sovereign-sdk/utils/zk-cycle-macros/README.md b/crates/sovereign-sdk/utils/zk-cycle-macros/README.md deleted file mode 100644 index c9e7add79..000000000 --- a/crates/sovereign-sdk/utils/zk-cycle-macros/README.md +++ /dev/null @@ -1,39 +0,0 @@ -## Zk-cycle-macros -* Contains the `cycle-tracker` macro which can be used to annotate functions that run inside the risc0 vm -* In order to use the macro, the following changes need to be made -* Cargo.toml -```toml -[dependencies] -sov-zk-cycle-macros = {path = "../../utils/zk-cycle-macros", optional=true} -risc0-zkvm = { version = "0.21", default-features = false, features = ["std"], optional=true} -risc0-zkvm-platform = { version = "0.21", optional=true} -sov-zk-cycle-utils = {path = "../../utils/zk-cycle-utils", optional=true} - -[features] -bench = ["sov-zk-cycle-macros/bench","sov-zk-cycle-utils", "risc0-zkvm","risc0-zkvm-platform"] -``` -* The feature gating is needed because we don't want the cycle tracker scaffolding to be used unless the `bench` feature is enabled -* If the `bench` feature is not enabled, the risc0 host will not be built with the necessary syscalls to support tracking cycles -* The additional imports are necessary because the macro wraps the user function with the necessary code for tracking the number of cycles before and after the function execution -* The rust code that needs to use the `cycle_tracker` macro needs to import it and then annotate the function with it -```rust,ignore -// -#[cfg(all(target_os = "zkvm", feature = "bench"))] -use sov_zk_cycle_macros::cycle_tracker; -// -// -#[cfg_attr(all(target_os = "zkvm", feature = "bench"), cycle_tracker)] -fn begin_slot( - &mut self, - slot_data: &impl SlotData, - witness: >::Witness, -) { - let state_checkpoint = StateCheckpoint::with_witness(self.current_storage.clone(), witness); - - let mut working_set = state_checkpoint.to_revertable(); - - self.runtime.begin_slot_hook(slot_data, &mut working_set); - - self.checkpoint = Some(working_set.checkpoint()); -} -``` diff --git a/crates/sovereign-sdk/utils/zk-cycle-macros/src/lib.rs b/crates/sovereign-sdk/utils/zk-cycle-macros/src/lib.rs deleted file mode 100644 index 330ba2033..000000000 --- a/crates/sovereign-sdk/utils/zk-cycle-macros/src/lib.rs +++ /dev/null @@ -1,68 +0,0 @@ -#![deny(missing_docs)] -#![doc = include_str!("../README.md")] -extern crate proc_macro; - -use proc_macro::TokenStream; -use quote::quote; -use syn::{parse_macro_input, ItemFn}; - -/// This macro is used to annotate functions that we want to track the number of riscV cycles being -/// generated inside the VM. The purpose of the this macro is to measure how many cycles a rust -/// function takes because prover time is directly proportional to the number of riscv cycles -/// generated. It does this by making use of a risc0 provided function -/// ```rust,ignore -/// risc0_zkvm::guest::env::cycle_count -/// ``` -/// The macro essentially generates new function with the same name by wrapping the body with a cycle_count -/// at the beginning and end of the function, subtracting it and then emitting it out using the -/// a custom syscall that is generated when the prover is run with the `bench` feature. -/// `send_recv_slice` is used to communicate and pass a slice to the syscall that we defined. -/// The handler for the syscall can be seen in adapters/risc0/src/host.rs and adapters/risc0/src/metrics.rs -#[proc_macro_attribute] -pub fn cycle_tracker(_attr: TokenStream, item: TokenStream) -> TokenStream { - let input = parse_macro_input!(item as ItemFn); - - match wrap_function(input) { - Ok(ok) => ok, - Err(err) => err.to_compile_error().into(), - } -} - -fn wrap_function(input: ItemFn) -> Result { - let visibility = &input.vis; - let name = &input.sig.ident; - let inputs = &input.sig.inputs; - let output = &input.sig.output; - let block = &input.block; - let generics = &input.sig.generics; - let where_clause = &input.sig.generics.where_clause; - let risc0_zkvm = syn::Ident::new("risc0_zkvm", proc_macro2::Span::call_site()); - let risc0_zkvm_platform = - syn::Ident::new("risc0_zkvm_platform", proc_macro2::Span::call_site()); - - let result = quote! { - #visibility fn #name #generics (#inputs) #output #where_clause { - let before = #risc0_zkvm::guest::env::cycle_count(); - let result = (|| #block)(); - let after = #risc0_zkvm::guest::env::cycle_count(); - - // simple serialization to avoid pulling in bincode or other libs - let tuple = (stringify!(#name).to_string(), (after - before) as u64); - let mut serialized = Vec::new(); - serialized.extend(tuple.0.as_bytes()); - serialized.push(0); - let size_bytes = tuple.1.to_ne_bytes(); - serialized.extend(&size_bytes); - - // calculate the syscall name. - let cycle_string = String::from("cycle_metrics\0"); - let metrics_syscall_name = unsafe { - #risc0_zkvm_platform::syscall::SyscallName::from_bytes_with_nul(cycle_string.as_ptr()) - }; - - #risc0_zkvm::guest::env::send_recv_slice::(metrics_syscall_name, &serialized); - result - } - }; - Ok(result.into()) -} diff --git a/crates/sovereign-sdk/utils/zk-cycle-macros/tests/all_tests.rs b/crates/sovereign-sdk/utils/zk-cycle-macros/tests/all_tests.rs deleted file mode 100644 index b46f71d6c..000000000 --- a/crates/sovereign-sdk/utils/zk-cycle-macros/tests/all_tests.rs +++ /dev/null @@ -1,5 +0,0 @@ -#[test] -fn cycle_macro_tests() { - let t = trybuild::TestCases::new(); - t.pass("tests/cycle_macro.rs"); -} diff --git a/crates/sovereign-sdk/utils/zk-cycle-macros/tests/cycle_macro.rs b/crates/sovereign-sdk/utils/zk-cycle-macros/tests/cycle_macro.rs deleted file mode 100644 index c279e6e8d..000000000 --- a/crates/sovereign-sdk/utils/zk-cycle-macros/tests/cycle_macro.rs +++ /dev/null @@ -1,71 +0,0 @@ -use std::marker::PhantomData; - -use sov_zk_cycle_macros::cycle_tracker; - -struct TestStruct; - -impl TestStruct { - #[cycle_tracker] - fn _struct_method() {} - - #[cycle_tracker] - fn _struct_method_with_self(&self) {} -} - -struct TestStructGeneric { - _phantom_t: PhantomData, - _phantom_u: PhantomData, -} - -impl TestStructGeneric { - #[cycle_tracker] - fn _generic_method(&self, _t: T, _u: U) {} -} - -#[cycle_tracker] -fn _generic_function(_t: T, _u: U) {} - -#[cycle_tracker] -fn _lifetime_function<'a>(s: &'a str) -> &'a str { - s -} - -struct TestStructLifetime<'a> { - s: &'a str, -} - -impl<'a> TestStructLifetime<'a> { - #[cycle_tracker] - fn _lifetime_method(&self) -> &'a str { - self.s - } -} - -struct TestStructAssociated; - -impl TestStructAssociated { - #[cycle_tracker] - fn _associated_function_no_self(_value: T) {} -} - -#[cycle_tracker] -fn _type_param_clause_function(_t: T) {} - -#[cycle_tracker] -fn _where_clause_function(value: T) -where - T: Clone + std::fmt::Debug, -{ - println!("{:?}", value.clone()); -} - -#[cycle_tracker] -fn _function_without_params() {} - -#[cycle_tracker] -fn _function_with_params(_a: u32, _b: usize) {} - -#[cycle_tracker] -pub fn _function_with_access_specifier(_a: u32, _b: usize) {} - -fn main() {} diff --git a/crates/sovereign-sdk/utils/zk-cycle-utils/Cargo.toml b/crates/sovereign-sdk/utils/zk-cycle-utils/Cargo.toml deleted file mode 100644 index ba325e5d4..000000000 --- a/crates/sovereign-sdk/utils/zk-cycle-utils/Cargo.toml +++ /dev/null @@ -1,21 +0,0 @@ -[package] -name = "sov-zk-cycle-utils" -authors = { workspace = true } -description = "Utilities for counting risc0 cycles consumed by Sovereign SDK functions" -edition = { workspace = true } -homepage = { workspace = true } -license = { workspace = true } -repository = { workspace = true } - -version = { workspace = true } -readme = "README.md" -resolver = "2" -autotests = false - -[dependencies] -risc0-zkvm = { workspace = true, default-features = false, features = ["std"] } -risc0-zkvm-platform = { workspace = true } - -[features] -default = [] -native = ["risc0-zkvm/prove"] diff --git a/crates/sovereign-sdk/utils/zk-cycle-utils/README.md b/crates/sovereign-sdk/utils/zk-cycle-utils/README.md deleted file mode 100644 index 6325629a8..000000000 --- a/crates/sovereign-sdk/utils/zk-cycle-utils/README.md +++ /dev/null @@ -1,72 +0,0 @@ -## Tracer - -- The tracer binary makes use of goblin, capstone and rustc-demangle to disassemble the riscV ELF and build a symbol table -- The execution trace for the rollup ELF is generated by running the `demo-prover` with the `ROLLUP_TRACE` environment variable set to the desired path - -```bash -cd examples/demo-prover/host -ROLLUP_TRACE=rollup.trace cargo bench --bench prover_bench --features bench -``` - -- `rollup.trace` now contains the program counter values for the run of the demo-prover (how many ever blocks, blobs and transactions we configured it for) -- The corresponding ELF used for the trace is found at - -```bash -$ file target/riscv-guest/riscv32im-risc0-zkvm-elf/release/rollup -target/riscv-guest/riscv32im-risc0-zkvm-elf/release/rollup: ELF 32-bit LSB executable, UCB RISC-V, soft-float ABI, version 1 (SYSV), statically linked, with debug_info, not stripped -``` - -- Both the above files are passed as input to the tracer - -```bash -% cargo run -- --rollup-elf ../../../examples/demo-prover/target/riscv-guest/riscv32im-risc0-zkvm-elf/release/rollup --rollup-trace ../../../examples/demo-prover/rollup.trace - Finished dev [unoptimized + debuginfo] target(s) in 0.11s - Running `target/debug/tracer --rollup-elf ../../../examples/demo-prover/target/riscv-guest/riscv32im-risc0-zkvm-elf/release/rollup --rollup-trace ../../../examples/demo-prover/rollup.trace` - [00:01:04] [########################################] 16154861/16154861 (0s) - -Total instructions in trace: 16154861 - - - Instruction counts considering call graph -+--------------------------------------------------------------------------------------------+-------------------+ -| Function Name | Instruction Count | -+============================================================================================+===================+ -| __start | 16154854 | -+--------------------------------------------------------------------------------------------+-------------------+ -| main | 16153565 | -+--------------------------------------------------------------------------------------------+-------------------+ -| rollup::main::h089e03181dac539a | 16153559 | -+--------------------------------------------------------------------------------------------+-------------------+ -| sov_modules_stf_template:: for | | -| sov_modules_stf_template::app_template::StfBlueprint>::apply_slot::h820293d | | -| c8d744201 | | -+--------------------------------------------------------------------------------------------+-------------------+ -| ed25519_dalek::public::PublicKey::verify_strict::hfad17f99efbd2cd0 | 13528566 | -+--------------------------------------------------------------------------------------------+-------------------+ -| <&curve25519_dalek::backend::serial::u64::field::FieldElement51 as | 8295218 | -| core::ops::arith::Mul<&curve25519_dalek::backend::serial::u64::field::FieldElement51>>::mu | | -| l::h39351372a97422dd | | -. -. -. -+--------------------------------------------------------------------------------------------+-------------------+ -``` - -- The tracer also generates a pure count of instructions without considering the stack -- There are other options that can be passed which are self documented in the cli - -```bash -Usage: tracer [OPTIONS] --rollup-elf --rollup-trace - -Options: - -t, --top Include the "top" number of functions [default: 30] - --no-stack-counts Don't print stack aware instruction counts - --no-raw-counts Don't print raw (stack un-aware) instruction counts - --rollup-elf Path to the riscv32 elf - --rollup-trace Path to the rollup trace. File must be one u64 program counter per line - -s, --strip-hashes Strip the hashes from the function name while printing - -h, --help Print help - -V, --version Print version - -``` diff --git a/crates/sovereign-sdk/utils/zk-cycle-utils/src/lib.rs b/crates/sovereign-sdk/utils/zk-cycle-utils/src/lib.rs deleted file mode 100644 index bd5af4d82..000000000 --- a/crates/sovereign-sdk/utils/zk-cycle-utils/src/lib.rs +++ /dev/null @@ -1,29 +0,0 @@ -use risc0_zkvm_platform::syscall::SyscallName; - -pub fn get_syscall_name() -> SyscallName { - let name = c"cycle_metrics".as_ptr(); - unsafe { SyscallName::from_bytes_with_nul(name as _) } -} - -#[cfg(feature = "native")] -pub fn cycle_count_callback(input: risc0_zkvm::Bytes) -> risc0_zkvm::Result { - if input.len() == std::mem::size_of::() { - let mut array = [0u8; std::mem::size_of::()]; - array.copy_from_slice(&input); - println!("== syscall ==> {}", usize::from_le_bytes(array)); - } else { - println!("NONE"); - } - Ok(risc0_zkvm::Bytes::new()) -} - -pub fn get_syscall_name_cycles() -> SyscallName { - let name = c"cycle_count".as_ptr(); - unsafe { SyscallName::from_bytes_with_nul(name as _) } -} - -pub fn print_cycle_count() { - let metrics_syscall_name = get_syscall_name_cycles(); - let serialized = risc0_zkvm::guest::env::cycle_count().to_le_bytes(); - risc0_zkvm::guest::env::send_recv_slice::(metrics_syscall_name, &serialized); -} diff --git a/guests/risc0/batch-proof-bitcoin/Cargo.lock b/guests/risc0/batch-proof-bitcoin/Cargo.lock index ac5901a54..f8d68b2e8 100644 --- a/guests/risc0/batch-proof-bitcoin/Cargo.lock +++ b/guests/risc0/batch-proof-bitcoin/Cargo.lock @@ -3021,7 +3021,6 @@ dependencies = [ "hex", "proptest", "serde", - "sha2", "thiserror", ] diff --git a/guests/risc0/batch-proof-mock/Cargo.lock b/guests/risc0/batch-proof-mock/Cargo.lock index 64f51acdb..70c2c408c 100644 --- a/guests/risc0/batch-proof-mock/Cargo.lock +++ b/guests/risc0/batch-proof-mock/Cargo.lock @@ -2823,7 +2823,6 @@ dependencies = [ "hex", "proptest", "serde", - "sha2", "thiserror", ] diff --git a/guests/risc0/light-client-proof-bitcoin/Cargo.lock b/guests/risc0/light-client-proof-bitcoin/Cargo.lock index 571fa39be..e19533338 100644 --- a/guests/risc0/light-client-proof-bitcoin/Cargo.lock +++ b/guests/risc0/light-client-proof-bitcoin/Cargo.lock @@ -2789,7 +2789,6 @@ dependencies = [ "hex", "proptest", "serde", - "sha2", "thiserror", ] diff --git a/guests/risc0/light-client-proof-mock/Cargo.lock b/guests/risc0/light-client-proof-mock/Cargo.lock index 8aa8cc2fd..129d4335c 100644 --- a/guests/risc0/light-client-proof-mock/Cargo.lock +++ b/guests/risc0/light-client-proof-mock/Cargo.lock @@ -2575,7 +2575,6 @@ dependencies = [ "hex", "proptest", "serde", - "sha2", "thiserror", ]