From 03246d0845f445582f54858976430405f97696ca Mon Sep 17 00:00:00 2001 From: Stephen Chen <20940639+stephenctw@users.noreply.github.com> Date: Thu, 15 Aug 2024 17:48:26 +0800 Subject: [PATCH 01/12] feat(prt-bindings): use `--alloy` for binding generation --- prt/Makefile | 2 +- prt/contract-bindings/Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/prt/Makefile b/prt/Makefile index 7c236f23..5d0f2cf7 100644 --- a/prt/Makefile +++ b/prt/Makefile @@ -10,7 +10,7 @@ clean: @rm -rf $(BINDINGS_DIR) bind: - @forge bind --ethers --select $(BINDINGS_FILTER) \ + @forge bind --alloy --select $(BINDINGS_FILTER) \ --module --bindings-path $(BINDINGS_DIR) \ --root $(SRC_DIR) diff --git a/prt/contract-bindings/Cargo.toml b/prt/contract-bindings/Cargo.toml index 31c5729d..6310698d 100644 --- a/prt/contract-bindings/Cargo.toml +++ b/prt/contract-bindings/Cargo.toml @@ -15,6 +15,6 @@ readme = "README.md" repository = "https://github.com/cartesi/dave" [dependencies] -ethers = { version = "2", default-features = false, features = ["abigen"] } +alloy = { version = "0.2.1", features = ["sol-types", "contract"] } serde = "1" From 9c63216766267365877faa936de23ed8824dfa65 Mon Sep 17 00:00:00 2001 From: Stephen Chen <20940639+stephenctw@users.noreply.github.com> Date: Thu, 15 Aug 2024 22:44:01 +0800 Subject: [PATCH 02/12] feat(prt-rs): adopt `alloy` & `ruint` --- common-rs/Cargo.toml | 2 - common-rs/arithmetic/Cargo.toml | 2 - common-rs/merkle/Cargo.toml | 1 + common-rs/merkle/src/digest/mod.rs | 13 + prt/prt-rs/Cargo.toml | 2 +- prt/prt-rs/compute/Cargo.toml | 2 +- .../config/config.rs => compute/src/lib.rs} | 7 +- prt/prt-rs/compute/src/main.rs | 8 +- prt/prt-rs/core/Cargo.toml | 10 +- prt/prt-rs/core/src/arena/arena.rs | 44 ++- prt/prt-rs/core/src/arena/config.rs | 6 +- prt/prt-rs/core/src/arena/reader.rs | 270 ++++++++++-------- prt/prt-rs/core/src/arena/sender.rs | 125 ++++---- prt/prt-rs/core/src/config/mod.rs | 4 - prt/prt-rs/core/src/lib.rs | 1 - prt/prt-rs/core/src/machine/instance.rs | 2 +- prt/prt-rs/core/src/strategy/gc.rs | 2 +- prt/prt-rs/core/src/strategy/player.rs | 16 +- 18 files changed, 304 insertions(+), 213 deletions(-) rename prt/prt-rs/{core/src/config/config.rs => compute/src/lib.rs} (79%) delete mode 100644 prt/prt-rs/core/src/config/mod.rs diff --git a/common-rs/Cargo.toml b/common-rs/Cargo.toml index afaa5d7f..1e2256e0 100644 --- a/common-rs/Cargo.toml +++ b/common-rs/Cargo.toml @@ -19,5 +19,3 @@ homepage = "https://github.com/cartesi/dave" license-file = "LICENSE" readme = "README.md" repository = "https://github.com/cartesi/dave" - -[workspace.dependencies] \ No newline at end of file diff --git a/common-rs/arithmetic/Cargo.toml b/common-rs/arithmetic/Cargo.toml index 2ac7c5d1..f8229b3b 100644 --- a/common-rs/arithmetic/Cargo.toml +++ b/common-rs/arithmetic/Cargo.toml @@ -9,5 +9,3 @@ homepage = { workspace = true } license-file = { workspace = true } readme = { workspace = true } repository = { workspace = true } - - diff --git a/common-rs/merkle/Cargo.toml b/common-rs/merkle/Cargo.toml index c267f796..280b2629 100644 --- a/common-rs/merkle/Cargo.toml +++ b/common-rs/merkle/Cargo.toml @@ -11,6 +11,7 @@ readme = { workspace = true } repository = { workspace = true } [dependencies] +alloy = { version = "0.2.1", features = ["sol-types"] } hex = "0.4" ruint = "1.12" sha3 = "0.10" diff --git a/common-rs/merkle/src/digest/mod.rs b/common-rs/merkle/src/digest/mod.rs index a0990bef..60af5e75 100644 --- a/common-rs/merkle/src/digest/mod.rs +++ b/common-rs/merkle/src/digest/mod.rs @@ -1,6 +1,7 @@ //! Definition of the [Digest] type and its associated methods. A digest is the output of a hash //! function. It's used to identify the data in the MerkleTree. +use alloy::sol_types::private::B256; use hex::FromHex; use std::fmt; @@ -78,6 +79,18 @@ impl From for [u8; HASH_SIZE] { } } +impl From for Digest { + fn from(data: B256) -> Self { + Digest::new(data.0) + } +} + +impl From for B256 { + fn from(hash: Digest) -> Self { + B256::from_slice(hash.slice()) + } +} + impl fmt::Display for Digest { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { write!(f, "{}", self.to_hex()) diff --git a/prt/prt-rs/Cargo.toml b/prt/prt-rs/Cargo.toml index c8c60607..24799d92 100644 --- a/prt/prt-rs/Cargo.toml +++ b/prt/prt-rs/Cargo.toml @@ -30,7 +30,7 @@ anyhow = "1.0" async-recursion = "1" async-trait = "0.1" clap = { version = "4.5", features = ["derive", "env"] } -ethers = "2.0" +alloy = { version = "0.2.1", features = ["sol-types", "contract", "network", "reqwest", "signers", "signer-local"] } futures = "0.3" log = "0.4" tokio = { version = "1", features = ["full"] } diff --git a/prt/prt-rs/compute/Cargo.toml b/prt/prt-rs/compute/Cargo.toml index 3edf3c28..86afeb6d 100644 --- a/prt/prt-rs/compute/Cargo.toml +++ b/prt/prt-rs/compute/Cargo.toml @@ -12,9 +12,9 @@ repository = { workspace = true } [dependencies] cartesi-prt-core = { path = "../core" } +alloy = { version = "0.2.1", features = ["sol-types"] } anyhow = { workspace = true } clap = { workspace = true } -ethers = { workspace = true } tokio = { workspace = true } log = { workspace = true } env_logger = "0.10" diff --git a/prt/prt-rs/core/src/config/config.rs b/prt/prt-rs/compute/src/lib.rs similarity index 79% rename from prt/prt-rs/core/src/config/config.rs rename to prt/prt-rs/compute/src/lib.rs index f77d8158..67024dac 100644 --- a/prt/prt-rs/core/src/config/config.rs +++ b/prt/prt-rs/compute/src/lib.rs @@ -1,6 +1,6 @@ -use crate::arena::ArenaConfig; +use alloy::sol_types::private::Address; +use cartesi_prt_core::arena::BlockchainConfig; use clap::Parser; -use ethers::types::Address; const ANVIL_ROOT_TOURNAMENT: &str = "0xa16E02E87b7454126E5E10d957A927A7F5B5d2be"; @@ -9,8 +9,7 @@ const ANVIL_ROOT_TOURNAMENT: &str = "0xa16E02E87b7454126E5E10d957A927A7F5B5d2be" #[command(about = "Configuration for Cartesi Compute")] pub struct ComputeConfig { #[command(flatten)] - pub arena_config: ArenaConfig, - + pub blockchain_config: BlockchainConfig, /// path to machine config #[arg(long, env)] pub machine_path: String, diff --git a/prt/prt-rs/compute/src/main.rs b/prt/prt-rs/compute/src/main.rs index e7e12089..a23e0e1b 100644 --- a/prt/prt-rs/compute/src/main.rs +++ b/prt/prt-rs/compute/src/main.rs @@ -1,6 +1,6 @@ +use cartesi_prt_compute::ComputeConfig; use cartesi_prt_core::{ arena::{EthArenaSender, StateReader}, - config::ComputeConfig, machine::CachingMachineCommitmentBuilder, strategy::{gc::GarbageCollector, player::Player}, }; @@ -32,10 +32,10 @@ async fn main() -> Result<()> { env_logger::init(); let config = ComputeConfig::parse(); - let arena_config = config.arena_config.clone(); + let blockchain_config = config.blockchain_config; - let reader = StateReader::new(arena_config.clone())?; - let sender = EthArenaSender::new(arena_config)?; + let reader = StateReader::new(&blockchain_config)?; + let sender = EthArenaSender::new(&blockchain_config)?; let mut player = Player::new( config.machine_path.clone(), diff --git a/prt/prt-rs/core/Cargo.toml b/prt/prt-rs/core/Cargo.toml index e91ef4c5..276307a3 100644 --- a/prt/prt-rs/core/Cargo.toml +++ b/prt/prt-rs/core/Cargo.toml @@ -8,19 +8,15 @@ cartesi-dave-arithmetic = { workspace = true } cartesi-dave-merkle = { workspace = true } cartesi-machine = { workspace = true } cartesi-prt-contracts = { workspace = true } +alloy = { workspace = true } anyhow = { workspace = true } async-recursion = { workspace = true } async-trait = { workspace = true } clap = { workspace = true } -ethers = { workspace = true } log = { workspace = true } clap_derive = "=4.5.5" hex = "0.4.3" +num-traits = "0.2.19" +ruint = { version = "1.12", features = ["num-traits"] } sha3 = "0.10.8" thiserror = "1.0.50" - -[build-dependencies] -convert_case = "0.6.0" -ethers-contract-abigen = "2.0.11" -foundry-compilers = "0.1.3" -serde_json = "1.0.107" diff --git a/prt/prt-rs/core/src/arena/arena.rs b/prt/prt-rs/core/src/arena/arena.rs index 7208027a..679a189d 100644 --- a/prt/prt-rs/core/src/arena/arena.rs +++ b/prt/prt-rs/core/src/arena/arena.rs @@ -1,9 +1,10 @@ //! This module defines the structs that are used for the interacting to tournaments use crate::machine::MachineCommitment; + +use alloy::sol_types::private::Address; use cartesi_dave_merkle::Digest; -use cartesi_prt_contracts::shared_types::Id; -use ethers::types::{Address, U256}; +use ruint::aliases::U256; use std::collections::HashMap; pub type TournamentStateMap = HashMap; @@ -23,11 +24,30 @@ impl MatchID { } } -impl From for Id { +// TODO: this can be optimized if the bindings generated with only one shared `Id` struct +impl From for cartesi_prt_contracts::tournament::Match::Id { + fn from(match_id: MatchID) -> Self { + cartesi_prt_contracts::tournament::Match::Id { + commitmentOne: match_id.commitment_one.into(), + commitmentTwo: match_id.commitment_two.into(), + } + } +} + +impl From for cartesi_prt_contracts::nonleaftournament::Match::Id { + fn from(match_id: MatchID) -> Self { + cartesi_prt_contracts::nonleaftournament::Match::Id { + commitmentOne: match_id.commitment_one.into(), + commitmentTwo: match_id.commitment_two.into(), + } + } +} + +impl From for cartesi_prt_contracts::leaftournament::Match::Id { fn from(match_id: MatchID) -> Self { - Id { - commitment_one: match_id.commitment_one.into(), - commitment_two: match_id.commitment_two.into(), + cartesi_prt_contracts::leaftournament::Match::Id { + commitmentOne: match_id.commitment_one.into(), + commitmentTwo: match_id.commitment_two.into(), } } } @@ -45,7 +65,7 @@ pub struct CommitmentState { pub struct ClockState { pub allowance: u64, pub start_instant: u64, - pub block_time: U256, + pub block_time: u64, } impl ClockState { @@ -53,7 +73,7 @@ impl ClockState { if self.start_instant == 0 { true } else { - self.deadline() > self.block_time.as_u64() + self.deadline() > self.block_time } } @@ -61,7 +81,7 @@ impl ClockState { if self.start_instant == 0 { 0 } else { - self.block_time.as_u64() - self.deadline() + self.block_time - self.deadline() } } @@ -76,7 +96,7 @@ impl std::fmt::Display for ClockState { if self.start_instant == 0 { write!(f, "clock paused, {} seconds left", self.allowance) } else { - let time_elapsed = self.block_time.as_u64() - self.start_instant; + let time_elapsed = self.block_time - self.start_instant; if self.allowance >= time_elapsed { write!( f, @@ -142,10 +162,10 @@ pub struct MatchState { pub other_parent: Digest, pub left_node: Digest, pub right_node: Digest, - pub running_leaf_position: u64, + pub running_leaf_position: U256, pub current_height: u64, pub level: u64, - pub leaf_cycle: u64, + pub leaf_cycle: U256, pub base_big_cycle: u64, pub tournament_address: Address, pub inner_tournament: Option
, diff --git a/prt/prt-rs/core/src/arena/config.rs b/prt/prt-rs/core/src/arena/config.rs index e0c86be1..b1c56d2c 100644 --- a/prt/prt-rs/core/src/arena/config.rs +++ b/prt/prt-rs/core/src/arena/config.rs @@ -6,9 +6,9 @@ const ANVIL_URL: &str = "http://127.0.0.1:8545"; const ANVIL_KEY_1: &str = "0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80"; #[derive(Debug, Clone, Parser)] -#[command(name = "compute_arena_config")] -#[command(about = "Configuration for Compute Arena")] -pub struct ArenaConfig { +#[command(name = "blockchain_config")] +#[command(about = "Configuration for Blockchain Access")] +pub struct BlockchainConfig { /// url to blockchain endpoint #[arg(long, env, default_value = ANVIL_URL)] pub web3_rpc_url: String, diff --git a/prt/prt-rs/core/src/arena/reader.rs b/prt/prt-rs/core/src/arena/reader.rs index c12f0e3f..fa68a091 100644 --- a/prt/prt-rs/core/src/arena/reader.rs +++ b/prt/prt-rs/core/src/arena/reader.rs @@ -1,15 +1,20 @@ //! This module defines the struct [StateReader] that is responsible for the reading the states //! of tournaments -use std::{collections::HashMap, sync::Arc, time::Duration}; +use std::{collections::HashMap, sync::Arc}; use anyhow::Result; use async_recursion::async_recursion; -use ethers::{ - providers::{Http, Middleware, Provider}, - types::{Address, BlockNumber::Latest, ValueOrArray::Value, H256}, +use alloy::{ + eips::BlockNumberOrTag::Latest, + providers::{ + network::primitives::BlockTransactionsKind, Provider, ProviderBuilder, RootProvider, + }, + sol_types::private::{Address, B256}, + transports::http::{Client, Http}, }; +use num_traits::cast::ToPrimitive; use crate::{ arena::{ @@ -17,40 +22,39 @@ use crate::{ ClockState, CommitmentState, MatchID, MatchState, TournamentState, TournamentStateMap, TournamentWinner, }, - config::ArenaConfig, + config::BlockchainConfig, }, machine::constants, }; use cartesi_dave_merkle::Digest; -use cartesi_prt_contracts::{ - non_leaf_tournament, non_root_tournament, root_tournament, tournament, -}; +use cartesi_prt_contracts::{nonleaftournament, nonroottournament, roottournament, tournament}; #[derive(Clone)] pub struct StateReader { - client: Arc>, + client: Arc>>, } impl StateReader { - pub fn new(config: ArenaConfig) -> Result { - let provider = Provider::::try_from(config.web3_rpc_url.clone())? - .interval(Duration::from_millis(1000)); + pub fn new(config: &BlockchainConfig) -> Result { + let url = config.web3_rpc_url.parse()?; + let provider = ProviderBuilder::new().on_http(url); let client = Arc::new(provider); Ok(Self { client }) } + // TODO: update from_block async fn created_tournament( &self, tournament_address: Address, match_id: MatchID, ) -> Result> { let tournament = - non_leaf_tournament::NonLeafTournament::new(tournament_address, self.client.clone()); + nonleaftournament::NonLeafTournament::new(tournament_address, &self.client); let events = tournament - .new_inner_tournament_filter() - .address(Value(tournament_address)) - .topic1(H256::from_slice(match_id.hash().slice())) + .newInnerTournament_filter() + .address(tournament_address) + .topic1::(match_id.hash().into()) .from_block(0) .to_block(Latest) .query() @@ -58,18 +62,59 @@ impl StateReader { if let Some(event) = events.last() { Ok(Some(TournamentCreatedEvent { parent_match_id_hash: match_id.hash(), - new_tournament_address: event.1, + new_tournament_address: event.0._1, })) } else { Ok(None) } } + async fn capture_matches(&self, tournament_address: Address) -> Result> { + let tournament = tournament::Tournament::new(tournament_address, &self.client); + let created_matches = self.created_matches(tournament_address).await?; + + let mut matches = vec![]; + for match_event in created_matches { + let match_id = match_event.id; + let m = tournament.getMatch(match_id.hash().into()).call().await?._0; + + if !m.otherParent.is_zero() || !m.leftNode.is_zero() || !m.rightNode.is_zero() { + let leaf_cycle = tournament + .getMatchCycle(match_id.hash().into()) + .call() + .await? + ._0; + let base_big_cycle = (leaf_cycle >> constants::LOG2_UARCH_SPAN) + .to_u64() + .expect("fail to convert base big cycle"); + + let running_leaf_position = m.runningLeafPosition; + + let match_state = MatchState { + id: match_id, + other_parent: m.otherParent.into(), + left_node: m.leftNode.into(), + right_node: m.rightNode.into(), + running_leaf_position, + current_height: m.currentHeight, + tournament_address, + level: m.level, + leaf_cycle, + base_big_cycle, + inner_tournament: None, + }; + matches.push(match_state); + } + } + + Ok(matches) + } + async fn created_matches(&self, tournament_address: Address) -> Result> { - let tournament = tournament::Tournament::new(tournament_address, self.client.clone()); + let tournament = tournament::Tournament::new(tournament_address, &self.client); let events: Vec = tournament - .match_created_filter() - .address(Value(tournament_address)) + .matchCreated_filter() + .address(tournament_address) .from_block(0) .to_block(Latest) .query() @@ -77,10 +122,10 @@ impl StateReader { .iter() .map(|event| MatchCreatedEvent { id: MatchID { - commitment_one: event.one.into(), - commitment_two: event.two.into(), + commitment_one: event.0.one.into(), + commitment_two: event.0.two.into(), }, - left_hash: event.left_of_two.into(), + left_hash: event.0.leftOfTwo.into(), }) .collect(); Ok(events) @@ -90,17 +135,17 @@ impl StateReader { &self, tournament_address: Address, ) -> Result> { - let tournament = tournament::Tournament::new(tournament_address, self.client.clone()); + let tournament = tournament::Tournament::new(tournament_address, &self.client); let events = tournament - .commitment_joined_filter() - .address(Value(tournament_address)) + .commitmentJoined_filter() + .address(tournament_address) .from_block(0) .to_block(Latest) .query() .await? .iter() .map(|c| CommitmentJoinedEvent { - root: Digest::from(c.root), + root: c.0.root.into(), }) .collect(); Ok(events) @@ -108,140 +153,117 @@ impl StateReader { async fn get_commitment( &self, - tournament: Address, + tournament_address: Address, commitment_hash: Digest, ) -> Result { - let tournament = tournament::Tournament::new(tournament, self.client.clone()); - let (clock_state, hash) = tournament - .get_commitment(commitment_hash.into()) + let tournament = tournament::Tournament::new(tournament_address, &self.client); + let commitment_return = tournament + .getCommitment(commitment_hash.into()) .call() .await?; + let block_time = self .client - .get_block(Latest) + .get_block(Latest.into(), BlockTransactionsKind::Hashes) .await? .expect("cannot get last block") + .header .timestamp; let clock_state = ClockState { - allowance: clock_state.allowance, - start_instant: clock_state.start_instant, + allowance: commitment_return._0.allowance, + start_instant: commitment_return._0.startInstant, block_time, }; Ok(CommitmentState { clock: clock_state, - final_state: Digest::from(hash), + final_state: commitment_return._1.into(), latest_match: None, }) } - pub async fn fetch_from_root(&self, root_tournament: Address) -> Result { - self.fetch_tournament(TournamentState::new_root(root_tournament), HashMap::new()) - .await + pub async fn fetch_from_root( + &self, + root_tournament_address: Address, + ) -> Result { + let mut states = HashMap::new(); + self.fetch_tournament( + TournamentState::new_root(root_tournament_address), + &mut states, + ) + .await?; + + Ok(states) } #[async_recursion] async fn fetch_tournament( &self, - tournament_state: TournamentState, - states: TournamentStateMap, - ) -> Result { - let tournament = tournament::Tournament::new(tournament_state.address, self.client.clone()); - let mut state = tournament_state.clone(); - + mut state: TournamentState, + states: &mut TournamentStateMap, + ) -> Result<()> { + let tournament_address = state.address; + let tournament = tournament::Tournament::new(tournament_address, &self.client); + let level_constants_return = tournament.tournamentLevelConstants().call().await?; ( state.max_level, state.level, state.log2_stride, state.log2_stride_count, - ) = tournament.tournament_level_constants().await?; + ) = ( + level_constants_return._max_level, + level_constants_return._level, + level_constants_return._log2step, + level_constants_return._height, + ); assert!(state.level < state.max_level, "level out of bounds"); - let created_matches = self.created_matches(tournament_state.address).await?; - let commitments_joined = self.joined_commitments(tournament_state.address).await?; + let mut captured_matches = self.capture_matches(tournament_address).await?; + let commitments_joined = self.joined_commitments(tournament_address).await?; let mut commitment_states = HashMap::new(); for commitment in commitments_joined { let commitment_state = self - .get_commitment(tournament_state.address, commitment.root) + .get_commitment(tournament_address, commitment.root) .await?; commitment_states.insert(commitment.root, commitment_state); } - let mut matches = vec![]; - let mut new_states = states.clone(); - for match_event in created_matches { - let match_id = match_event.id; - let m = tournament.get_match(match_id.hash().into()).call().await?; - let leaf_cycle = tournament - .get_match_cycle(match_id.hash().into()) - .call() - .await? - .as_u64(); - let base_big_cycle = leaf_cycle >> constants::LOG2_UARCH_SPAN; - - let running_leaf_position = m.running_leaf_position.as_u64(); - let prev_states = new_states.clone(); - let match_state; - - // if !Digest::from(m.other_parent).is_zeroed() { - (match_state, new_states) = self - .fetch_match( - MatchState { - id: match_id, - other_parent: m.other_parent.into(), - left_node: m.left_node.into(), - right_node: m.right_node.into(), - running_leaf_position, - current_height: m.current_height, - tournament_address: tournament_state.address, - level: m.level, - leaf_cycle, - base_big_cycle, - inner_tournament: None, - }, - prev_states, - tournament_state.level, - ) + for (i, captured_match) in captured_matches.iter_mut().enumerate() { + self.fetch_match(captured_match, states, state.level) .await?; commitment_states - .get_mut(&match_id.commitment_one) + .get_mut(&captured_match.id.commitment_one) .expect("cannot find commitment one state") - .latest_match = Some(matches.len()); + .latest_match = Some(i); commitment_states - .get_mut(&match_id.commitment_two) + .get_mut(&captured_match.id.commitment_two) .expect("cannot find commitment two state") - .latest_match = Some(matches.len()); - matches.push(match_state); + .latest_match = Some(i); } - // } - let winner = match tournament_state.parent { - Some(_) => self.tournament_winner(tournament_state.address).await?, - None => { - self.root_tournament_winner(tournament_state.address) - .await? - } + let winner = match state.parent { + Some(_) => self.tournament_winner(tournament_address).await?, + None => self.root_tournament_winner(tournament_address).await?, }; state.winner = winner; - state.matches = matches; + state.matches = captured_matches; state.commitment_states = commitment_states; - new_states.insert(tournament_state.address, state); + states.insert(tournament_address, state); - Ok(new_states) + Ok(()) } #[async_recursion] async fn fetch_match( &self, - match_state: MatchState, - states: TournamentStateMap, + match_state: &mut MatchState, + states: &mut TournamentStateMap, tournament_level: u64, - ) -> Result<(MatchState, TournamentStateMap)> { - let mut state = match_state.clone(); + ) -> Result<()> { let created_tournament = self .created_tournament(match_state.tournament_address, match_state.id) .await?; @@ -252,41 +274,55 @@ impl StateReader { match_state.base_big_cycle, match_state.tournament_address, ); - let new_states = self.fetch_tournament(inner_tournament, states).await?; - state.inner_tournament = Some(inner.new_tournament_address); + self.fetch_tournament(inner_tournament, states).await?; + match_state.inner_tournament = Some(inner.new_tournament_address); - return Ok((state, new_states)); + return Ok(()); } - Ok((state, states)) + Ok(()) } async fn root_tournament_winner( &self, - root_tournament: Address, + root_tournament_address: Address, ) -> Result> { let root_tournament = - root_tournament::RootTournament::new(root_tournament, self.client.clone()); - let (finished, commitment, state) = root_tournament.arbitration_result().call().await?; + roottournament::RootTournament::new(root_tournament_address, &self.client); + let arbitration_result_return = root_tournament.arbitrationResult().call().await?; + let (finished, commitment, state) = ( + arbitration_result_return._0, + arbitration_result_return._1, + arbitration_result_return._2, + ); + if finished { Ok(Some(TournamentWinner::Root( - Digest::from(commitment), - Digest::from(state), + commitment.into(), + state.into(), ))) } else { Ok(None) } } - async fn tournament_winner(&self, tournament: Address) -> Result> { + async fn tournament_winner( + &self, + tournament_address: Address, + ) -> Result> { let tournament = - non_root_tournament::NonRootTournament::new(tournament, self.client.clone()); - let (finished, parent_commitment, dangling_commitment) = - tournament.inner_tournament_winner().call().await?; + nonroottournament::NonRootTournament::new(tournament_address, &self.client); + let inner_tournament_winner_return = tournament.innerTournamentWinner().call().await?; + let (finished, parent_commitment, dangling_commitment) = ( + inner_tournament_winner_return._0, + inner_tournament_winner_return._1, + inner_tournament_winner_return._2, + ); + if finished { Ok(Some(TournamentWinner::Inner( - Digest::from(parent_commitment), - Digest::from(dangling_commitment), + parent_commitment.into(), + dangling_commitment.into(), ))) } else { Ok(None) diff --git a/prt/prt-rs/core/src/arena/sender.rs b/prt/prt-rs/core/src/arena/sender.rs index 871ba10e..46d3d787 100644 --- a/prt/prt-rs/core/src/arena/sender.rs +++ b/prt/prt-rs/core/src/arena/sender.rs @@ -2,51 +2,75 @@ //! to tournaments use async_trait::async_trait; -use std::{str::FromStr, sync::Arc, time::Duration}; +use std::{str::FromStr, sync::Arc}; -use ethers::{ - contract::ContractError, - middleware::SignerMiddleware, - providers::{Http, Middleware, Provider, ProviderError}, - signers::{LocalWallet, Signer}, - types::{Address, Bytes}, +use alloy::{ + contract::Error as ContractError, + network::{Ethereum, EthereumWallet, NetworkWallet}, + providers::{ + fillers::{FillProvider, JoinFill, NonceFiller, WalletFiller}, + Identity, Provider, ProviderBuilder, RootProvider, + }, + signers::local::PrivateKeySigner, + sol_types::private::{Address, Bytes, B256}, + transports::{ + http::{Client, Http}, + RpcError, TransportErrorKind, + }, }; use crate::{ - arena::{arena::MatchID, config::ArenaConfig}, + arena::{arena::MatchID, config::BlockchainConfig}, machine::MachineProof, }; use cartesi_dave_merkle::{Digest, MerkleProof}; -use cartesi_prt_contracts::{leaf_tournament, non_leaf_tournament, tournament}; +use cartesi_prt_contracts::{leaftournament, nonleaftournament, tournament}; -type SenderMiddleware = SignerMiddleware, LocalWallet>; -type Result = std::result::Result>; +pub type SenderFiller = FillProvider< + JoinFill, WalletFiller>, + RootProvider>, + Http, + Ethereum, +>; +type Result = std::result::Result; #[derive(Clone)] pub struct EthArenaSender { - client: Arc, + client: Arc, + wallet_address: Address, } impl EthArenaSender { - pub fn new(config: ArenaConfig) -> anyhow::Result { - let provider = Provider::::try_from(config.web3_rpc_url.clone())? - .interval(Duration::from_millis(10u64)); - let wallet = LocalWallet::from_str(config.web3_private_key.as_str())?; - let client = Arc::new(SignerMiddleware::new( - provider, - wallet.with_chain_id(config.web3_chain_id), - )); + pub fn new(config: &BlockchainConfig) -> anyhow::Result { + let signer = PrivateKeySigner::from_str(config.web3_private_key.as_str())?; + let wallet = EthereumWallet::from(signer); + let wallet_address = + >::default_signer_address(&wallet); - Ok(Self { client }) + let url = config.web3_rpc_url.parse()?; + let provider = ProviderBuilder::new() + .with_nonce_management() + .wallet(wallet) + .with_chain( + config + .web3_chain_id + .try_into() + .expect("fail to convert chain id"), + ) + .on_http(url); + let client = Arc::new(provider); + + Ok(Self { + client, + wallet_address, + }) } - pub async fn nonce(&self) -> std::result::Result { + pub async fn nonce(&self) -> std::result::Result> { Ok(self .client - .inner() - .get_transaction_count(self.client.signer().address(), None) - .await? - .as_u64()) + .get_transaction_count(self.wallet_address) + .await?) } } @@ -126,14 +150,14 @@ impl ArenaSender for EthArenaSender { left_child: Digest, right_child: Digest, ) -> Result<()> { - let tournament = tournament::Tournament::new(tournament, self.client.clone()); + let tournament = tournament::Tournament::new(tournament, &self.client); let siblings = proof .siblings .iter() - .map(|h| -> [u8; 32] { (*h).into() }) + .map(|h| -> B256 { (*h).into() }) .collect(); tournament - .join_tournament( + .joinTournament( proof.node.into(), siblings, left_child.into(), @@ -141,6 +165,7 @@ impl ArenaSender for EthArenaSender { ) .send() .await? + .watch() .await?; Ok(()) } @@ -154,9 +179,9 @@ impl ArenaSender for EthArenaSender { new_left_node: Digest, new_right_node: Digest, ) -> Result<()> { - let tournament = tournament::Tournament::new(tournament, self.client.clone()); + let tournament = tournament::Tournament::new(tournament, &self.client); tournament - .advance_match( + .advanceMatch( match_id.into(), left_node.into(), right_node.into(), @@ -165,6 +190,7 @@ impl ArenaSender for EthArenaSender { ) .send() .await? + .watch() .await?; Ok(()) } @@ -177,15 +203,14 @@ impl ArenaSender for EthArenaSender { right_leaf: Digest, initial_hash_proof: &MerkleProof, ) -> Result<()> { - let tournament = - non_leaf_tournament::NonLeafTournament::new(tournament, self.client.clone()); + let tournament = nonleaftournament::NonLeafTournament::new(tournament, &self.client); let initial_hash_siblings = initial_hash_proof .siblings .iter() - .map(|h| -> [u8; 32] { (*h).into() }) + .map(|h| -> B256 { (*h).into() }) .collect(); tournament - .seal_inner_match_and_create_inner_tournament( + .sealInnerMatchAndCreateInnerTournament( match_id.into(), left_leaf.into(), right_leaf.into(), @@ -194,6 +219,7 @@ impl ArenaSender for EthArenaSender { ) .send() .await? + .watch() .await?; Ok(()) } @@ -205,12 +231,12 @@ impl ArenaSender for EthArenaSender { left_node: Digest, right_node: Digest, ) -> Result<()> { - let tournament = - non_leaf_tournament::NonLeafTournament::new(tournament, self.client.clone()); + let tournament = nonleaftournament::NonLeafTournament::new(tournament, &self.client); tournament - .win_inner_match(child_tournament, left_node.into(), right_node.into()) + .winInnerMatch(child_tournament, left_node.into(), right_node.into()) .send() .await? + .watch() .await?; Ok(()) } @@ -222,12 +248,12 @@ impl ArenaSender for EthArenaSender { left_node: Digest, right_node: Digest, ) -> Result<()> { - let tournament = - non_leaf_tournament::NonLeafTournament::new(tournament, self.client.clone()); + let tournament = nonleaftournament::NonLeafTournament::new(tournament, &self.client); tournament - .win_match_by_timeout(match_id.into(), left_node.into(), right_node.into()) + .winMatchByTimeout(match_id.into(), left_node.into(), right_node.into()) .send() .await? + .watch() .await?; Ok(()) } @@ -240,14 +266,14 @@ impl ArenaSender for EthArenaSender { right_leaf: Digest, initial_hash_proof: &MerkleProof, ) -> Result<()> { - let tournament = leaf_tournament::LeafTournament::new(tournament, self.client.clone()); + let tournament = leaftournament::LeafTournament::new(tournament, &self.client); let initial_hash_siblings = initial_hash_proof .siblings .iter() - .map(|h| -> [u8; 32] { (*h).into() }) + .map(|h| -> B256 { (*h).into() }) .collect(); tournament - .seal_leaf_match( + .sealLeafMatch( match_id.into(), left_leaf.into(), right_leaf.into(), @@ -256,6 +282,7 @@ impl ArenaSender for EthArenaSender { ) .send() .await? + .watch() .await?; Ok(()) } @@ -268,9 +295,9 @@ impl ArenaSender for EthArenaSender { right_node: Digest, proofs: MachineProof, ) -> Result<()> { - let tournament = leaf_tournament::LeafTournament::new(tournament, self.client.clone()); + let tournament = leaftournament::LeafTournament::new(tournament, &self.client); tournament - .win_leaf_match( + .winLeafMatch( match_id.into(), left_node.into(), right_node.into(), @@ -278,16 +305,18 @@ impl ArenaSender for EthArenaSender { ) .send() .await? + .watch() .await?; Ok(()) } async fn eliminate_match(&self, tournament: Address, match_id: MatchID) -> Result<()> { - let tournament = tournament::Tournament::new(tournament, self.client.clone()); + let tournament = tournament::Tournament::new(tournament, &self.client); tournament - .eliminate_match_by_timeout(match_id.into()) + .eliminateMatchByTimeout(match_id.into()) .send() .await? + .watch() .await?; Ok(()) } diff --git a/prt/prt-rs/core/src/config/mod.rs b/prt/prt-rs/core/src/config/mod.rs deleted file mode 100644 index 0c21baec..00000000 --- a/prt/prt-rs/core/src/config/mod.rs +++ /dev/null @@ -1,4 +0,0 @@ -//! This module defines the struct [] - -mod config; -pub use config::*; diff --git a/prt/prt-rs/core/src/lib.rs b/prt/prt-rs/core/src/lib.rs index 54da0d2d..14a4d923 100644 --- a/prt/prt-rs/core/src/lib.rs +++ b/prt/prt-rs/core/src/lib.rs @@ -2,6 +2,5 @@ //! trees and tournaments using the Cartesi Machine. pub mod arena; -pub mod config; pub mod machine; pub mod strategy; diff --git a/prt/prt-rs/core/src/machine/instance.rs b/prt/prt-rs/core/src/machine/instance.rs index 03228551..d542af76 100644 --- a/prt/prt-rs/core/src/machine/instance.rs +++ b/prt/prt-rs/core/src/machine/instance.rs @@ -3,7 +3,7 @@ use cartesi_dave_arithmetic as arithmetic; use cartesi_dave_merkle::Digest; use cartesi_machine::{ configuration::RuntimeConfig, - log::{AccessLog, AccessLogType, AccessType}, + log::{AccessLog, AccessLogType}, machine::Machine, }; diff --git a/prt/prt-rs/core/src/strategy/gc.rs b/prt/prt-rs/core/src/strategy/gc.rs index a1e56571..ce21f02e 100644 --- a/prt/prt-rs/core/src/strategy/gc.rs +++ b/prt/prt-rs/core/src/strategy/gc.rs @@ -1,7 +1,7 @@ use ::log::info; +use alloy::sol_types::private::Address; use anyhow::Result; use async_recursion::async_recursion; -use ethers::types::Address; use crate::arena::{ArenaSender, MatchState, TournamentStateMap}; diff --git a/prt/prt-rs/core/src/strategy/player.rs b/prt/prt-rs/core/src/strategy/player.rs index cf06253d..16c9bb54 100644 --- a/prt/prt-rs/core/src/strategy/player.rs +++ b/prt/prt-rs/core/src/strategy/player.rs @@ -1,9 +1,11 @@ use std::collections::HashMap; use ::log::info; +use alloy::sol_types::private::Address; use anyhow::Result; use async_recursion::async_recursion; -use ethers::types::Address; +use num_traits::{cast::ToPrimitive, One}; +use ruint::aliases::U256; use crate::{ arena::{ @@ -315,7 +317,9 @@ impl Player { } let cycle = match_state.base_big_cycle; - let ucycle = match_state.leaf_cycle & constants::UARCH_SPAN; + let ucycle = (match_state.leaf_cycle & U256::from(constants::UARCH_SPAN)) + .to_u64() + .expect("fail to convert ucycle"); let proof = MachineInstance::new(&self.machine_path)?.get_logs(cycle, ucycle)?; info!( @@ -369,14 +373,16 @@ impl Player { match_state.running_leaf_position } else { // disagree on right - match_state.running_leaf_position + 1 + match_state.running_leaf_position + U256::one() } }; - let agree_state_proof = if running_leaf_position == 0 { + let agree_state_proof = if running_leaf_position.is_zero() { MerkleProof::empty() } else { - commitment.merkle.prove_leaf(running_leaf_position - 1) + commitment + .merkle + .prove_leaf(running_leaf_position - U256::one()) }; if tournament_level == (tournament_max_level - 1) { From 7261e6db4246d70ce6bfd2cc66ec38dfff03a6d3 Mon Sep 17 00:00:00 2001 From: Stephen Chen <20940639+stephenctw@users.noreply.github.com> Date: Mon, 19 Aug 2024 13:48:55 +0800 Subject: [PATCH 03/12] chore(node): move `rollups-node` to `cartesi-rollups/node` --- .../node}/Cargo.lock | 629 ++++++++++++++++-- .../node}/Cargo.toml | 8 +- .../node}/Dockerfile.test | 0 .../node}/README.md | 2 +- .../node}/blockchain-reader/Cargo.toml | 0 .../node}/blockchain-reader/src/error.rs | 0 .../node}/blockchain-reader/src/lib.rs | 0 .../node}/dave-rollups/Cargo.toml | 0 .../node}/dave-rollups/src/lib.rs | 0 .../node}/dave-rollups/src/main.rs | 0 .../node}/epoch-manager/Cargo.toml | 0 .../node}/epoch-manager/src/lib.rs | 0 .../node}/machine-runner/Cargo.toml | 0 .../node}/machine-runner/src/error.rs | 0 .../node}/machine-runner/src/lib.rs | 0 .../machine-runner/test-files/inputs.test | 0 .../test-files/machine_state_hashes.test | 0 .../machine-runner/test-files/split_inputs.sh | 0 .../node}/rollups-test-entrypoint.sh | 0 .../node}/state-manager/Cargo.toml | 0 .../node}/state-manager/src/lib.rs | 0 .../src/persistent_state_access.rs | 0 .../state-manager/src/sql/consensus_data.rs | 0 .../node}/state-manager/src/sql/error.rs | 0 .../node}/state-manager/src/sql/migrations.rs | 0 .../state-manager/src/sql/migrations.sql | 0 .../node}/state-manager/src/sql/mod.rs | 0 27 files changed, 561 insertions(+), 78 deletions(-) rename {rollups-node => cartesi-rollups/node}/Cargo.lock (90%) rename {rollups-node => cartesi-rollups/node}/Cargo.toml (81%) rename {rollups-node => cartesi-rollups/node}/Dockerfile.test (100%) rename {rollups-node => cartesi-rollups/node}/README.md (82%) rename {rollups-node => cartesi-rollups/node}/blockchain-reader/Cargo.toml (100%) rename {rollups-node => cartesi-rollups/node}/blockchain-reader/src/error.rs (100%) rename {rollups-node => cartesi-rollups/node}/blockchain-reader/src/lib.rs (100%) rename {rollups-node => cartesi-rollups/node}/dave-rollups/Cargo.toml (100%) rename {rollups-node => cartesi-rollups/node}/dave-rollups/src/lib.rs (100%) rename {rollups-node => cartesi-rollups/node}/dave-rollups/src/main.rs (100%) rename {rollups-node => cartesi-rollups/node}/epoch-manager/Cargo.toml (100%) rename {rollups-node => cartesi-rollups/node}/epoch-manager/src/lib.rs (100%) rename {rollups-node => cartesi-rollups/node}/machine-runner/Cargo.toml (100%) rename {rollups-node => cartesi-rollups/node}/machine-runner/src/error.rs (100%) rename {rollups-node => cartesi-rollups/node}/machine-runner/src/lib.rs (100%) rename {rollups-node => cartesi-rollups/node}/machine-runner/test-files/inputs.test (100%) rename {rollups-node => cartesi-rollups/node}/machine-runner/test-files/machine_state_hashes.test (100%) rename {rollups-node => cartesi-rollups/node}/machine-runner/test-files/split_inputs.sh (100%) rename {rollups-node => cartesi-rollups/node}/rollups-test-entrypoint.sh (100%) rename {rollups-node => cartesi-rollups/node}/state-manager/Cargo.toml (100%) rename {rollups-node => cartesi-rollups/node}/state-manager/src/lib.rs (100%) rename {rollups-node => cartesi-rollups/node}/state-manager/src/persistent_state_access.rs (100%) rename {rollups-node => cartesi-rollups/node}/state-manager/src/sql/consensus_data.rs (100%) rename {rollups-node => cartesi-rollups/node}/state-manager/src/sql/error.rs (100%) rename {rollups-node => cartesi-rollups/node}/state-manager/src/sql/migrations.rs (100%) rename {rollups-node => cartesi-rollups/node}/state-manager/src/sql/migrations.sql (100%) rename {rollups-node => cartesi-rollups/node}/state-manager/src/sql/mod.rs (100%) diff --git a/rollups-node/Cargo.lock b/cartesi-rollups/node/Cargo.lock similarity index 90% rename from rollups-node/Cargo.lock rename to cartesi-rollups/node/Cargo.lock index 14aa3cd8..bb00bfcf 100644 --- a/rollups-node/Cargo.lock +++ b/cartesi-rollups/node/Cargo.lock @@ -59,11 +59,137 @@ dependencies = [ "memchr", ] +[[package]] +name = "allocator-api2" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" + +[[package]] +name = "alloy" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f4a4aaae80afd4be443a6aecd92a6b255dcdd000f97996928efb33d8a71e100" +dependencies = [ + "alloy-consensus", + "alloy-contract", + "alloy-core", + "alloy-eips", + "alloy-genesis", + "alloy-network", + "alloy-provider", + "alloy-rpc-client", + "alloy-serde", + "alloy-signer", + "alloy-signer-local", + "alloy-transport", + "alloy-transport-http", +] + +[[package]] +name = "alloy-chains" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b515e82c8468ddb6ff8db21c78a5997442f113fd8471fd5b2261b2602dd0c67" +dependencies = [ + "num_enum", + "strum", +] + +[[package]] +name = "alloy-consensus" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04c309895995eaa4bfcc345f5515a39c7df9447798645cc8bf462b6c5bf1dc96" +dependencies = [ + "alloy-eips", + "alloy-primitives", + "alloy-rlp", + "alloy-serde", + "c-kzg", + "serde", +] + +[[package]] +name = "alloy-contract" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f4e0ef72b0876ae3068b2ed7dfae9ae1779ce13cfaec2ee1f08f5bd0348dc57" +dependencies = [ + "alloy-dyn-abi", + "alloy-json-abi", + "alloy-network", + "alloy-network-primitives", + "alloy-primitives", + "alloy-provider", + "alloy-rpc-types-eth", + "alloy-sol-types", + "alloy-transport", + "futures", + "futures-util", + "thiserror", +] + +[[package]] +name = "alloy-core" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "529fc6310dc1126c8de51c376cbc59c79c7f662bd742be7dc67055d5421a81b4" +dependencies = [ + "alloy-dyn-abi", + "alloy-json-abi", + "alloy-primitives", + "alloy-sol-types", +] + +[[package]] +name = "alloy-dyn-abi" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413902aa18a97569e60f679c23f46a18db1656d87ab4d4e49d0e1e52042f66df" +dependencies = [ + "alloy-json-abi", + "alloy-primitives", + "alloy-sol-type-parser", + "alloy-sol-types", + "const-hex", + "itoa", + "serde", + "serde_json", + "winnow 0.6.8", +] + +[[package]] +name = "alloy-eips" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9431c99a3b3fe606ede4b3d4043bdfbcb780c45b8d8d226c3804e2b75cfbe68" +dependencies = [ + "alloy-primitives", + "alloy-rlp", + "alloy-serde", + "c-kzg", + "once_cell", + "serde", + "sha2", +] + +[[package]] +name = "alloy-genesis" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79614dfe86144328da11098edcc7bc1a3f25ad8d3134a9eb9e857e06f0d9840d" +dependencies = [ + "alloy-primitives", + "alloy-serde", + "serde", +] + [[package]] name = "alloy-json-abi" -version = "0.5.4" +version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "838228983f74f30e4efbd8d42d25bfe1b5bf6450ca71ee9d7628f134fbe8ae8e" +checksum = "bc05b04ac331a9f07e3a4036ef7926e49a8bf84a99a1ccfc7e2ab55a5fcbb372" dependencies = [ "alloy-primitives", "alloy-sol-type-parser", @@ -71,20 +197,66 @@ dependencies = [ "serde_json", ] +[[package]] +name = "alloy-json-rpc" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57e2865c4c3bb4cdad3f0d9ec1ab5c0c657ba69a375651bd35e32fb6c180ccc2" +dependencies = [ + "alloy-primitives", + "alloy-sol-types", + "serde", + "serde_json", + "thiserror", + "tracing", +] + +[[package]] +name = "alloy-network" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e701fc87ef9a3139154b0b4ccb935b565d27ffd9de020fe541bf2dec5ae4ede" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-json-rpc", + "alloy-network-primitives", + "alloy-primitives", + "alloy-rpc-types-eth", + "alloy-serde", + "alloy-signer", + "alloy-sol-types", + "async-trait", + "auto_impl", + "futures-utils-wasm", + "thiserror", +] + +[[package]] +name = "alloy-network-primitives" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec9d5a0f9170b10988b6774498a022845e13eda94318440d17709d50687f67f9" +dependencies = [ + "alloy-primitives", + "alloy-serde", + "serde", +] + [[package]] name = "alloy-primitives" -version = "0.5.4" +version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c234f92024707f224510ff82419b2be0e1d8e1fd911defcac5a085cd7f83898" +checksum = "ccb3ead547f4532bc8af961649942f0b9c16ee9226e26caa3f38420651cc0bf4" dependencies = [ "alloy-rlp", "bytes", "cfg-if", "const-hex", "derive_more", - "getrandom", "hex-literal", "itoa", + "k256", "keccak-asm", "proptest", "rand", @@ -93,23 +265,247 @@ dependencies = [ "tiny-keccak", ] +[[package]] +name = "alloy-provider" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9c0ab10b93de601a6396fc7ff2ea10d3b28c46f079338fa562107ebf9857c8" +dependencies = [ + "alloy-chains", + "alloy-consensus", + "alloy-eips", + "alloy-json-rpc", + "alloy-network", + "alloy-network-primitives", + "alloy-primitives", + "alloy-rpc-client", + "alloy-rpc-types-eth", + "alloy-transport", + "alloy-transport-http", + "async-stream", + "async-trait", + "auto_impl", + "dashmap", + "futures", + "futures-utils-wasm", + "lru", + "pin-project", + "reqwest 0.12.4", + "serde", + "serde_json", + "tokio", + "tracing", + "url", +] + [[package]] name = "alloy-rlp" version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b155716bab55763c95ba212806cf43d05bcc70e5f35b02bad20cf5ec7fe11fed" dependencies = [ + "alloy-rlp-derive", "arrayvec", "bytes", ] +[[package]] +name = "alloy-rlp-derive" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d0f2d905ebd295e7effec65e5f6868d153936130ae718352771de3e7d03c75c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.66", +] + +[[package]] +name = "alloy-rpc-client" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b38e3ffdb285df5d9f60cb988d336d9b8e3505acb78750c3bc60336a7af41d3" +dependencies = [ + "alloy-json-rpc", + "alloy-transport", + "alloy-transport-http", + "futures", + "pin-project", + "reqwest 0.12.4", + "serde", + "serde_json", + "tokio", + "tokio-stream", + "tower", + "tracing", + "url", +] + +[[package]] +name = "alloy-rpc-types-eth" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81e18424d962d7700a882fe423714bd5b9dde74c7a7589d4255ea64068773aef" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-network-primitives", + "alloy-primitives", + "alloy-rlp", + "alloy-serde", + "alloy-sol-types", + "itertools 0.13.0", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "alloy-serde" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e33feda6a53e6079895aed1d08dcb98a1377b000d80d16370fbbdb8155d547ef" +dependencies = [ + "alloy-primitives", + "serde", + "serde_json", +] + +[[package]] +name = "alloy-signer" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "740a25b92e849ed7b0fa013951fe2f64be9af1ad5abe805037b44fb7770c5c47" +dependencies = [ + "alloy-primitives", + "async-trait", + "auto_impl", + "elliptic-curve", + "k256", + "thiserror", +] + +[[package]] +name = "alloy-signer-local" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b0707d4f63e4356a110b30ef3add8732ab6d181dd7be4607bf79b8777105cee" +dependencies = [ + "alloy-consensus", + "alloy-network", + "alloy-primitives", + "alloy-signer", + "async-trait", + "k256", + "rand", + "thiserror", +] + +[[package]] +name = "alloy-sol-macro" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b40397ddcdcc266f59f959770f601ce1280e699a91fc1862f29cef91707cd09" +dependencies = [ + "alloy-sol-macro-expander", + "alloy-sol-macro-input", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.66", +] + +[[package]] +name = "alloy-sol-macro-expander" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "867a5469d61480fea08c7333ffeca52d5b621f5ca2e44f271b117ec1fc9a0525" +dependencies = [ + "alloy-json-abi", + "alloy-sol-macro-input", + "const-hex", + "heck 0.5.0", + "indexmap", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.66", + "syn-solidity", + "tiny-keccak", +] + +[[package]] +name = "alloy-sol-macro-input" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e482dc33a32b6fadbc0f599adea520bd3aaa585c141a80b404d0a3e3fa72528" +dependencies = [ + "alloy-json-abi", + "const-hex", + "dunce", + "heck 0.5.0", + "proc-macro2", + "quote", + "serde_json", + "syn 2.0.66", + "syn-solidity", +] + [[package]] name = "alloy-sol-type-parser" -version = "0.5.4" +version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c82c1ed2d61e982cef4c4d709f4aeef5f39a6a6a7c59b6e54c9ed4f3f7e3741b" +checksum = "cbcba3ca07cf7975f15d871b721fb18031eec8bce51103907f6dcce00b255d98" dependencies = [ - "winnow 0.5.40", + "serde", + "winnow 0.6.8", +] + +[[package]] +name = "alloy-sol-types" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a91ca40fa20793ae9c3841b83e74569d1cc9af29a2f5237314fd3452d51e38c7" +dependencies = [ + "alloy-json-abi", + "alloy-primitives", + "alloy-sol-macro", + "const-hex", + "serde", +] + +[[package]] +name = "alloy-transport" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d0590afbdacf2f8cca49d025a2466f3b6584a016a8b28f532f29f8da1007bae" +dependencies = [ + "alloy-json-rpc", + "base64 0.22.1", + "futures-util", + "futures-utils-wasm", + "serde", + "serde_json", + "thiserror", + "tokio", + "tower", + "tracing", + "url", +] + +[[package]] +name = "alloy-transport-http" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2437d145d80ea1aecde8574d2058cceb8b3c9cba05f6aea8e67907c660d46698" +dependencies = [ + "alloy-json-rpc", + "alloy-transport", + "reqwest 0.12.4", + "serde_json", + "tower", + "tracing", + "url", ] [[package]] @@ -317,6 +713,28 @@ dependencies = [ "syn 2.0.66", ] +[[package]] +name = "async-stream" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51" +dependencies = [ + "async-stream-impl", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-stream-impl" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.66", +] + [[package]] name = "async-trait" version = "0.1.80" @@ -484,6 +902,18 @@ dependencies = [ "generic-array", ] +[[package]] +name = "blst" +version = "0.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4378725facc195f1a538864863f6de233b500a8862747e7f165078a419d5e874" +dependencies = [ + "cc", + "glob", + "threadpool", + "zeroize", +] + [[package]] name = "bs58" version = "0.5.1" @@ -542,6 +972,20 @@ dependencies = [ "pkg-config", ] +[[package]] +name = "c-kzg" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdf100c4cea8f207e883ff91ca886d621d8a166cb04971dfaa9bb8fd99ed95df" +dependencies = [ + "blst", + "cc", + "glob", + "hex", + "libc", + "serde", +] + [[package]] name = "camino" version = "1.1.7" @@ -582,7 +1026,9 @@ version = "0.1.0" name = "cartesi-dave-merkle" version = "0.1.0" dependencies = [ + "alloy", "hex", + "ruint", "sha3", "thiserror", ] @@ -613,7 +1059,7 @@ dependencies = [ name = "cartesi-prt-contracts" version = "0.1.0" dependencies = [ - "ethers", + "alloy", "serde", ] @@ -621,6 +1067,7 @@ dependencies = [ name = "cartesi-prt-core" version = "0.1.0" dependencies = [ + "alloy", "anyhow", "async-recursion", "async-trait", @@ -630,13 +1077,10 @@ dependencies = [ "cartesi-prt-contracts", "clap", "clap_derive", - "convert_case 0.6.0", - "ethers", - "ethers-contract-abigen", - "foundry-compilers", "hex", "log", - "serde_json", + "num-traits", + "ruint", "sha3", "thiserror", ] @@ -836,15 +1280,6 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" -[[package]] -name = "convert_case" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca" -dependencies = [ - "unicode-segmentation", -] - [[package]] name = "core-foundation" version = "0.9.4" @@ -941,6 +1376,19 @@ dependencies = [ "cipher", ] +[[package]] +name = "dashmap" +version = "5.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" +dependencies = [ + "cfg-if", + "hashbrown", + "lock_api", + "once_cell", + "parking_lot_core", +] + [[package]] name = "data-encoding" version = "2.6.0" @@ -1003,7 +1451,7 @@ version = "0.99.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" dependencies = [ - "convert_case 0.4.0", + "convert_case", "proc-macro2", "quote", "rustc_version 0.4.0", @@ -1608,40 +2056,6 @@ dependencies = [ "percent-encoding", ] -[[package]] -name = "foundry-compilers" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c9f9741733af2e2ff11f5671d57ba421948ca26addf4086e1d1c849f19b73dc" -dependencies = [ - "alloy-json-abi", - "alloy-primitives", - "cfg-if", - "const-hex", - "dirs", - "dunce", - "glob", - "home", - "md-5", - "memmap2", - "num_cpus", - "once_cell", - "path-slash", - "rayon", - "regex", - "semver 1.0.23", - "serde", - "serde_json", - "solang-parser", - "svm-rs", - "thiserror", - "tiny-keccak", - "tokio", - "tracing", - "walkdir", - "yansi", -] - [[package]] name = "fs2" version = "0.4.3" @@ -1767,6 +2181,12 @@ dependencies = [ "slab", ] +[[package]] +name = "futures-utils-wasm" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42012b0f064e01aa58b545fe3727f90f7dd4020f4a3ea735b50344965f5a57e9" + [[package]] name = "fxhash" version = "0.2.1" @@ -1878,6 +2298,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" dependencies = [ "ahash", + "allocator-api2", ] [[package]] @@ -2249,6 +2670,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.11" @@ -2436,6 +2866,15 @@ version = "0.4.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" +[[package]] +name = "lru" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37ee39891760e7d94734f6f63fedc29a2e4a152f836120753a72503f09fcf904" +dependencies = [ + "hashbrown", +] + [[package]] name = "md-5" version = "0.10.6" @@ -2452,15 +2891,6 @@ version = "2.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" -[[package]] -name = "memmap2" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe751422e4a8caa417e13c3ea66452215d7d63e19e604f4980461212f3ae1322" -dependencies = [ - "libc", -] - [[package]] name = "mime" version = "0.3.17" @@ -2973,6 +3403,30 @@ dependencies = [ "toml_edit 0.21.1", ] +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn 1.0.109", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + [[package]] name = "proc-macro2" version = "1.0.83" @@ -3959,6 +4413,18 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "syn-solidity" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c837dc8852cb7074e46b444afb81783140dab12c58867b49fb3898fbafedf7ea" +dependencies = [ + "paste", + "proc-macro2", + "quote", + "syn 2.0.66", +] + [[package]] name = "sync_wrapper" version = "0.1.2" @@ -4044,6 +4510,15 @@ dependencies = [ "syn 2.0.66", ] +[[package]] +name = "threadpool" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" +dependencies = [ + "num_cpus", +] + [[package]] name = "time" version = "0.3.36" @@ -4149,6 +4624,18 @@ dependencies = [ "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-tungstenite" version = "0.20.1" @@ -4235,6 +4722,7 @@ dependencies = [ "tokio", "tower-layer", "tower-service", + "tracing", ] [[package]] @@ -4255,6 +4743,7 @@ 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", @@ -4367,12 +4856,6 @@ dependencies = [ "tinyvec", ] -[[package]] -name = "unicode-segmentation" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" - [[package]] name = "unicode-xid" version = "0.2.4" diff --git a/rollups-node/Cargo.toml b/cartesi-rollups/node/Cargo.toml similarity index 81% rename from rollups-node/Cargo.toml rename to cartesi-rollups/node/Cargo.toml index 7915e277..9b66cabb 100644 --- a/rollups-node/Cargo.toml +++ b/cartesi-rollups/node/Cargo.toml @@ -28,10 +28,10 @@ rollups-epoch-manager = { version = "0.1", path = "epoch-manager" } rollups-machine-runner = { version = "0.1", path = "machine-runner" } rollups-state-manager = { version = "0.1", path = "state-manager" } -cartesi-machine = { path = "../machine/rust-bindings/cartesi-machine" } -cartesi-dave-arithmetic = { path = "../common-rs/arithmetic" } -cartesi-dave-merkle = { path = "../common-rs/merkle" } -cartesi-prt-core = { path = "../prt/prt-rs/core" } +cartesi-machine = { path = "../../machine/rust-bindings/cartesi-machine" } +cartesi-dave-arithmetic = { path = "../../common-rs/arithmetic" } +cartesi-dave-merkle = { path = "../../common-rs/merkle" } +cartesi-prt-core = { path = "../../prt/prt-rs/core" } anyhow = "1.0" async-recursion = "1" diff --git a/rollups-node/Dockerfile.test b/cartesi-rollups/node/Dockerfile.test similarity index 100% rename from rollups-node/Dockerfile.test rename to cartesi-rollups/node/Dockerfile.test diff --git a/rollups-node/README.md b/cartesi-rollups/node/README.md similarity index 82% rename from rollups-node/README.md rename to cartesi-rollups/node/README.md index 0b8db0a7..7134b3cc 100644 --- a/rollups-node/README.md +++ b/cartesi-rollups/node/README.md @@ -3,7 +3,7 @@ ## Build test image ``` -docker build -t cartesi/rollups-node:test ../ -f Dockerfile.test +docker build -t cartesi/rollups-node:test ../../ -f Dockerfile.test ``` ## Run rollups tests diff --git a/rollups-node/blockchain-reader/Cargo.toml b/cartesi-rollups/node/blockchain-reader/Cargo.toml similarity index 100% rename from rollups-node/blockchain-reader/Cargo.toml rename to cartesi-rollups/node/blockchain-reader/Cargo.toml diff --git a/rollups-node/blockchain-reader/src/error.rs b/cartesi-rollups/node/blockchain-reader/src/error.rs similarity index 100% rename from rollups-node/blockchain-reader/src/error.rs rename to cartesi-rollups/node/blockchain-reader/src/error.rs diff --git a/rollups-node/blockchain-reader/src/lib.rs b/cartesi-rollups/node/blockchain-reader/src/lib.rs similarity index 100% rename from rollups-node/blockchain-reader/src/lib.rs rename to cartesi-rollups/node/blockchain-reader/src/lib.rs diff --git a/rollups-node/dave-rollups/Cargo.toml b/cartesi-rollups/node/dave-rollups/Cargo.toml similarity index 100% rename from rollups-node/dave-rollups/Cargo.toml rename to cartesi-rollups/node/dave-rollups/Cargo.toml diff --git a/rollups-node/dave-rollups/src/lib.rs b/cartesi-rollups/node/dave-rollups/src/lib.rs similarity index 100% rename from rollups-node/dave-rollups/src/lib.rs rename to cartesi-rollups/node/dave-rollups/src/lib.rs diff --git a/rollups-node/dave-rollups/src/main.rs b/cartesi-rollups/node/dave-rollups/src/main.rs similarity index 100% rename from rollups-node/dave-rollups/src/main.rs rename to cartesi-rollups/node/dave-rollups/src/main.rs diff --git a/rollups-node/epoch-manager/Cargo.toml b/cartesi-rollups/node/epoch-manager/Cargo.toml similarity index 100% rename from rollups-node/epoch-manager/Cargo.toml rename to cartesi-rollups/node/epoch-manager/Cargo.toml diff --git a/rollups-node/epoch-manager/src/lib.rs b/cartesi-rollups/node/epoch-manager/src/lib.rs similarity index 100% rename from rollups-node/epoch-manager/src/lib.rs rename to cartesi-rollups/node/epoch-manager/src/lib.rs diff --git a/rollups-node/machine-runner/Cargo.toml b/cartesi-rollups/node/machine-runner/Cargo.toml similarity index 100% rename from rollups-node/machine-runner/Cargo.toml rename to cartesi-rollups/node/machine-runner/Cargo.toml diff --git a/rollups-node/machine-runner/src/error.rs b/cartesi-rollups/node/machine-runner/src/error.rs similarity index 100% rename from rollups-node/machine-runner/src/error.rs rename to cartesi-rollups/node/machine-runner/src/error.rs diff --git a/rollups-node/machine-runner/src/lib.rs b/cartesi-rollups/node/machine-runner/src/lib.rs similarity index 100% rename from rollups-node/machine-runner/src/lib.rs rename to cartesi-rollups/node/machine-runner/src/lib.rs diff --git a/rollups-node/machine-runner/test-files/inputs.test b/cartesi-rollups/node/machine-runner/test-files/inputs.test similarity index 100% rename from rollups-node/machine-runner/test-files/inputs.test rename to cartesi-rollups/node/machine-runner/test-files/inputs.test diff --git a/rollups-node/machine-runner/test-files/machine_state_hashes.test b/cartesi-rollups/node/machine-runner/test-files/machine_state_hashes.test similarity index 100% rename from rollups-node/machine-runner/test-files/machine_state_hashes.test rename to cartesi-rollups/node/machine-runner/test-files/machine_state_hashes.test diff --git a/rollups-node/machine-runner/test-files/split_inputs.sh b/cartesi-rollups/node/machine-runner/test-files/split_inputs.sh similarity index 100% rename from rollups-node/machine-runner/test-files/split_inputs.sh rename to cartesi-rollups/node/machine-runner/test-files/split_inputs.sh diff --git a/rollups-node/rollups-test-entrypoint.sh b/cartesi-rollups/node/rollups-test-entrypoint.sh similarity index 100% rename from rollups-node/rollups-test-entrypoint.sh rename to cartesi-rollups/node/rollups-test-entrypoint.sh diff --git a/rollups-node/state-manager/Cargo.toml b/cartesi-rollups/node/state-manager/Cargo.toml similarity index 100% rename from rollups-node/state-manager/Cargo.toml rename to cartesi-rollups/node/state-manager/Cargo.toml diff --git a/rollups-node/state-manager/src/lib.rs b/cartesi-rollups/node/state-manager/src/lib.rs similarity index 100% rename from rollups-node/state-manager/src/lib.rs rename to cartesi-rollups/node/state-manager/src/lib.rs diff --git a/rollups-node/state-manager/src/persistent_state_access.rs b/cartesi-rollups/node/state-manager/src/persistent_state_access.rs similarity index 100% rename from rollups-node/state-manager/src/persistent_state_access.rs rename to cartesi-rollups/node/state-manager/src/persistent_state_access.rs diff --git a/rollups-node/state-manager/src/sql/consensus_data.rs b/cartesi-rollups/node/state-manager/src/sql/consensus_data.rs similarity index 100% rename from rollups-node/state-manager/src/sql/consensus_data.rs rename to cartesi-rollups/node/state-manager/src/sql/consensus_data.rs diff --git a/rollups-node/state-manager/src/sql/error.rs b/cartesi-rollups/node/state-manager/src/sql/error.rs similarity index 100% rename from rollups-node/state-manager/src/sql/error.rs rename to cartesi-rollups/node/state-manager/src/sql/error.rs diff --git a/rollups-node/state-manager/src/sql/migrations.rs b/cartesi-rollups/node/state-manager/src/sql/migrations.rs similarity index 100% rename from rollups-node/state-manager/src/sql/migrations.rs rename to cartesi-rollups/node/state-manager/src/sql/migrations.rs diff --git a/rollups-node/state-manager/src/sql/migrations.sql b/cartesi-rollups/node/state-manager/src/sql/migrations.sql similarity index 100% rename from rollups-node/state-manager/src/sql/migrations.sql rename to cartesi-rollups/node/state-manager/src/sql/migrations.sql diff --git a/rollups-node/state-manager/src/sql/mod.rs b/cartesi-rollups/node/state-manager/src/sql/mod.rs similarity index 100% rename from rollups-node/state-manager/src/sql/mod.rs rename to cartesi-rollups/node/state-manager/src/sql/mod.rs From 2258f713f434bfcb24b9da042bf09845ce57af79 Mon Sep 17 00:00:00 2001 From: Stephen Chen <20940639+stephenctw@users.noreply.github.com> Date: Mon, 19 Aug 2024 13:57:11 +0800 Subject: [PATCH 04/12] feat: add `contract-bindings` for `DaveConsensus` --- .gitignore | 4 ++-- cartesi-rollups/Makefile | 17 +++++++++++++++++ cartesi-rollups/contract-bindings/Cargo.toml | 20 ++++++++++++++++++++ cartesi-rollups/contract-bindings/README.md | 8 ++++++++ cartesi-rollups/contract-bindings/src/lib.rs | 2 ++ 5 files changed, 49 insertions(+), 2 deletions(-) create mode 100644 cartesi-rollups/Makefile create mode 100644 cartesi-rollups/contract-bindings/Cargo.toml create mode 100644 cartesi-rollups/contract-bindings/README.md create mode 100644 cartesi-rollups/contract-bindings/src/lib.rs diff --git a/.gitignore b/.gitignore index 5a5680a6..f67f01b8 100644 --- a/.gitignore +++ b/.gitignore @@ -9,6 +9,6 @@ common-rs/Cargo.lock prt/lua_poc/outputs/ prt/lua_poc/pixels/ node_modules -prt/contract-bindings/src/contract -prt/contract-bindings/Cargo.lock +**/contract-bindings/src/contract +**/contract-bindings/Cargo.lock prt/machine-emulator-sdk diff --git a/cartesi-rollups/Makefile b/cartesi-rollups/Makefile new file mode 100644 index 00000000..283df91a --- /dev/null +++ b/cartesi-rollups/Makefile @@ -0,0 +1,17 @@ +BINDINGS_DIR := ./contract-bindings/src/contract +SRC_DIR := ./contracts +BINDINGS_FILTER := 'DaveConsensus' + +help: + @echo ' clean - clean the generated bindings' + @echo ' bind - generate Rust bindings from Solidity code' + +clean: + @rm -rf $(BINDINGS_DIR) + +bind: + @forge bind --alloy --select $(BINDINGS_FILTER) \ + --module --bindings-path $(BINDINGS_DIR) \ + --root $(SRC_DIR) + +.PHONY: help bind clean diff --git a/cartesi-rollups/contract-bindings/Cargo.toml b/cartesi-rollups/contract-bindings/Cargo.toml new file mode 100644 index 00000000..8f9a914d --- /dev/null +++ b/cartesi-rollups/contract-bindings/Cargo.toml @@ -0,0 +1,20 @@ +[package] +name = "cartesi-dave-contracts" + +version = "0.1.0" + +authors = [ + "Gabriel Coutinho de Paula ", + "Stephen Chen ", +] +description = "Cartesi Dave contract bindings" +edition = "2021" +homepage = "https://github.com/cartesi/dave" +license-file = "LICENSE" +readme = "README.md" +repository = "https://github.com/cartesi/dave" + +[dependencies] +alloy = { version = "0.2.1", features = ["sol-types", "contract"] } +serde = "1" + diff --git a/cartesi-rollups/contract-bindings/README.md b/cartesi-rollups/contract-bindings/README.md new file mode 100644 index 00000000..9ea256cb --- /dev/null +++ b/cartesi-rollups/contract-bindings/README.md @@ -0,0 +1,8 @@ +# Dave Contract bindings for Rust + +## Generate Rust bindings + +Run make command from [parent directory](../) +``` +make bind +``` diff --git a/cartesi-rollups/contract-bindings/src/lib.rs b/cartesi-rollups/contract-bindings/src/lib.rs new file mode 100644 index 00000000..c89b3333 --- /dev/null +++ b/cartesi-rollups/contract-bindings/src/lib.rs @@ -0,0 +1,2 @@ +pub mod contract; +pub use contract::*; From fd135c1c6d547ff5d26e454686f26217c2667360 Mon Sep 17 00:00:00 2001 From: Stephen Chen <20940639+stephenctw@users.noreply.github.com> Date: Mon, 19 Aug 2024 14:19:20 +0800 Subject: [PATCH 05/12] feat: update Rust code dependencies --- cartesi-rollups/contract-bindings/Cargo.toml | 1 - cartesi-rollups/node/Cargo.toml | 4 +++- cartesi-rollups/node/blockchain-reader/Cargo.toml | 6 +++--- cartesi-rollups/node/dave-rollups/Cargo.toml | 6 +++--- cartesi-rollups/node/epoch-manager/Cargo.toml | 2 +- cartesi-rollups/node/machine-runner/Cargo.toml | 2 +- prt/contract-bindings/Cargo.toml | 1 - prt/prt-rs/Cargo.toml | 1 + prt/prt-rs/compute/Cargo.toml | 2 +- prt/prt-rs/core/Cargo.toml | 2 +- 10 files changed, 14 insertions(+), 13 deletions(-) diff --git a/cartesi-rollups/contract-bindings/Cargo.toml b/cartesi-rollups/contract-bindings/Cargo.toml index 8f9a914d..897d8370 100644 --- a/cartesi-rollups/contract-bindings/Cargo.toml +++ b/cartesi-rollups/contract-bindings/Cargo.toml @@ -16,5 +16,4 @@ repository = "https://github.com/cartesi/dave" [dependencies] alloy = { version = "0.2.1", features = ["sol-types", "contract"] } -serde = "1" diff --git a/cartesi-rollups/node/Cargo.toml b/cartesi-rollups/node/Cargo.toml index 9b66cabb..6ffcbac4 100644 --- a/cartesi-rollups/node/Cargo.toml +++ b/cartesi-rollups/node/Cargo.toml @@ -30,15 +30,17 @@ rollups-state-manager = { version = "0.1", path = "state-manager" } cartesi-machine = { path = "../../machine/rust-bindings/cartesi-machine" } cartesi-dave-arithmetic = { path = "../../common-rs/arithmetic" } +cartesi-dave-contracts = { path = "../contract-bindings" } cartesi-dave-merkle = { path = "../../common-rs/merkle" } cartesi-prt-core = { path = "../../prt/prt-rs/core" } +alloy = { version = "0.2.1", features = ["sol-types", "contract", "network", "reqwest", "signers", "signer-local"] } anyhow = "1.0" async-recursion = "1" async-trait = "0.1.74" cartesi-rollups-contracts = "2.0.0-rc.1" clap = { version = "4.5.7", features = ["derive", "env"] } -ethers = "2.0.11" +clap_derive = "=4.5.13" futures = "0.3" log = "0.4" thiserror = "1.0" diff --git a/cartesi-rollups/node/blockchain-reader/Cargo.toml b/cartesi-rollups/node/blockchain-reader/Cargo.toml index 4772dd83..76dd505f 100644 --- a/cartesi-rollups/node/blockchain-reader/Cargo.toml +++ b/cartesi-rollups/node/blockchain-reader/Cargo.toml @@ -12,11 +12,11 @@ repository = { workspace = true } [dependencies] rollups-state-manager = { workspace = true } +alloy = { workspace = true } async-recursion = { workspace = true } +cartesi-dave-contracts = { workspace = true } cartesi-rollups-contracts = { workspace = true } clap = { workspace = true } -ethers = { workspace = true } +clap_derive = { workspace = true } thiserror = { workspace = true } tokio = { workspace = true } - -clap_derive = "=4.5.5" diff --git a/cartesi-rollups/node/dave-rollups/Cargo.toml b/cartesi-rollups/node/dave-rollups/Cargo.toml index a6dfb01c..22710529 100644 --- a/cartesi-rollups/node/dave-rollups/Cargo.toml +++ b/cartesi-rollups/node/dave-rollups/Cargo.toml @@ -18,12 +18,12 @@ rollups-state-manager = { workspace = true } cartesi-rollups-contracts = { workspace = true } +alloy = { workspace = true } anyhow = { workspace = true } clap = { workspace = true } -ethers = { workspace = true } futures = { workspace = true } tokio = { workspace = true } log = { workspace = true } +clap_derive = { workspace = true } rusqlite = { version = "0.31.0", features = ["bundled"] } -clap_derive = "=4.5.5" -env_logger = "0.10" +env_logger = "0.11.5" diff --git a/cartesi-rollups/node/epoch-manager/Cargo.toml b/cartesi-rollups/node/epoch-manager/Cargo.toml index edbefaca..55f67d4f 100644 --- a/cartesi-rollups/node/epoch-manager/Cargo.toml +++ b/cartesi-rollups/node/epoch-manager/Cargo.toml @@ -11,6 +11,6 @@ repository.workspace = true [dependencies] rollups-state-manager = { workspace = true } +alloy = { workspace = true } anyhow = { workspace = true } -ethers = { workspace = true } tokio = { workspace = true } diff --git a/cartesi-rollups/node/machine-runner/Cargo.toml b/cartesi-rollups/node/machine-runner/Cargo.toml index 02f3f083..24d75082 100644 --- a/cartesi-rollups/node/machine-runner/Cargo.toml +++ b/cartesi-rollups/node/machine-runner/Cargo.toml @@ -20,7 +20,7 @@ thiserror = { workspace = true } tokio = { workspace = true } [dev-dependencies] -ethers = { workspace = true } +alloy = { workspace = true } cartesi-rollups-contracts = { workspace = true } hex = "0.4.3" serde = "1" diff --git a/prt/contract-bindings/Cargo.toml b/prt/contract-bindings/Cargo.toml index 6310698d..61114a96 100644 --- a/prt/contract-bindings/Cargo.toml +++ b/prt/contract-bindings/Cargo.toml @@ -16,5 +16,4 @@ repository = "https://github.com/cartesi/dave" [dependencies] alloy = { version = "0.2.1", features = ["sol-types", "contract"] } -serde = "1" diff --git a/prt/prt-rs/Cargo.toml b/prt/prt-rs/Cargo.toml index 24799d92..f6a95650 100644 --- a/prt/prt-rs/Cargo.toml +++ b/prt/prt-rs/Cargo.toml @@ -30,6 +30,7 @@ anyhow = "1.0" async-recursion = "1" async-trait = "0.1" clap = { version = "4.5", features = ["derive", "env"] } +clap_derive = "=4.5.13" alloy = { version = "0.2.1", features = ["sol-types", "contract", "network", "reqwest", "signers", "signer-local"] } futures = "0.3" log = "0.4" diff --git a/prt/prt-rs/compute/Cargo.toml b/prt/prt-rs/compute/Cargo.toml index 86afeb6d..e0097057 100644 --- a/prt/prt-rs/compute/Cargo.toml +++ b/prt/prt-rs/compute/Cargo.toml @@ -17,4 +17,4 @@ anyhow = { workspace = true } clap = { workspace = true } tokio = { workspace = true } log = { workspace = true } -env_logger = "0.10" +env_logger = "0.11.5" diff --git a/prt/prt-rs/core/Cargo.toml b/prt/prt-rs/core/Cargo.toml index 276307a3..364ee466 100644 --- a/prt/prt-rs/core/Cargo.toml +++ b/prt/prt-rs/core/Cargo.toml @@ -13,8 +13,8 @@ anyhow = { workspace = true } async-recursion = { workspace = true } async-trait = { workspace = true } clap = { workspace = true } +clap_derive = { workspace = true } log = { workspace = true } -clap_derive = "=4.5.5" hex = "0.4.3" num-traits = "0.2.19" ruint = { version = "1.12", features = ["num-traits"] } From 5eb4096bb90b9c4c9e0a58ef94007131cb9e5c81 Mon Sep 17 00:00:00 2001 From: Stephen Chen <20940639+stephenctw@users.noreply.github.com> Date: Mon, 19 Aug 2024 14:29:03 +0800 Subject: [PATCH 06/12] feat(node): apply `alloy` --- cartesi-rollups/node/Cargo.toml | 2 +- .../node/blockchain-reader/Cargo.toml | 1 + .../node/blockchain-reader/src/error.rs | 15 +- .../node/blockchain-reader/src/lib.rs | 142 ++++++++---------- cartesi-rollups/node/dave-rollups/Cargo.toml | 1 + cartesi-rollups/node/dave-rollups/src/lib.rs | 8 +- cartesi-rollups/node/epoch-manager/Cargo.toml | 2 + cartesi-rollups/node/epoch-manager/src/lib.rs | 72 +++++---- .../node/machine-runner/src/lib.rs | 49 ++---- 9 files changed, 133 insertions(+), 159 deletions(-) diff --git a/cartesi-rollups/node/Cargo.toml b/cartesi-rollups/node/Cargo.toml index 6ffcbac4..1a62ca90 100644 --- a/cartesi-rollups/node/Cargo.toml +++ b/cartesi-rollups/node/Cargo.toml @@ -38,7 +38,7 @@ alloy = { version = "0.2.1", features = ["sol-types", "contract", "network", "re anyhow = "1.0" async-recursion = "1" async-trait = "0.1.74" -cartesi-rollups-contracts = "2.0.0-rc.1" +cartesi-rollups-contracts = "2.0.0-rc.8" clap = { version = "4.5.7", features = ["derive", "env"] } clap_derive = "=4.5.13" futures = "0.3" diff --git a/cartesi-rollups/node/blockchain-reader/Cargo.toml b/cartesi-rollups/node/blockchain-reader/Cargo.toml index 76dd505f..33af75c8 100644 --- a/cartesi-rollups/node/blockchain-reader/Cargo.toml +++ b/cartesi-rollups/node/blockchain-reader/Cargo.toml @@ -13,6 +13,7 @@ repository = { workspace = true } [dependencies] rollups-state-manager = { workspace = true } alloy = { workspace = true } +alloy-rpc-types-eth = "0.2.1" async-recursion = { workspace = true } cartesi-dave-contracts = { workspace = true } cartesi-rollups-contracts = { workspace = true } diff --git a/cartesi-rollups/node/blockchain-reader/src/error.rs b/cartesi-rollups/node/blockchain-reader/src/error.rs index 217ce233..b22db134 100644 --- a/cartesi-rollups/node/blockchain-reader/src/error.rs +++ b/cartesi-rollups/node/blockchain-reader/src/error.rs @@ -3,14 +3,12 @@ use rollups_state_manager::StateManager; -use ethers::abi::Error as AbiError; -use ethers::prelude::Http; -use ethers::providers::ProviderError; +use alloy::{contract::Error as ContractError, transports::http::reqwest::Url}; use std::str::FromStr; use thiserror::Error; #[derive(Error, Debug)] -pub struct ProviderErrors(pub Vec); +pub struct ProviderErrors(pub Vec); impl std::fmt::Display for ProviderErrors { fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { @@ -26,14 +24,9 @@ pub enum BlockchainReaderError { source: ProviderErrors, }, - #[error(transparent)] - Abi { - #[from] - source: AbiError, - }, - #[error("Parse error: {0}")] - ParseError(::Err), + ParseError(::Err), + #[error("State manager error: {0}")] StateManagerError(::Error), } diff --git a/cartesi-rollups/node/blockchain-reader/src/lib.rs b/cartesi-rollups/node/blockchain-reader/src/lib.rs index 28872f7e..c5acd752 100644 --- a/cartesi-rollups/node/blockchain-reader/src/lib.rs +++ b/cartesi-rollups/node/blockchain-reader/src/lib.rs @@ -4,44 +4,38 @@ mod error; use crate::error::{ProviderErrors, Result}; +use alloy::{ + contract::{Error, Event}, + eips::BlockNumberOrTag::Finalized, + providers::{ + network::primitives::BlockTransactionsKind, Provider, ProviderBuilder, RootProvider, + }, + sol_types::{private::Address, SolEvent}, + transports::http::{reqwest::Url, Client, Http}, +}; +use alloy_rpc_types_eth::Topic; use async_recursion::async_recursion; use clap::Parser; use error::BlockchainReaderError; -use ethers::abi::RawLog; -use std::str::FromStr; -use std::{sync::Arc, time::Duration}; - -use ethers::contract::EthEvent; -use ethers::prelude::{Http, ProviderError}; -use ethers::providers::{Middleware, Provider}; -use ethers::types::{Address, BlockNumber, Filter, Topic}; - -use cartesi_rollups_contracts::input_box::InputAddedFilter as NewInputAddedFilter; +use std::{ + marker::{Send, Sync}, + str::FromStr, + sync::Arc, + time::Duration, +}; + +use cartesi_rollups_contracts::inputbox::InputBox::InputAdded; use rollups_state_manager::{Epoch, Input, InputId, StateManager}; -// TODO: use actual event type from the rollups_contract crate -/// this is the old event format, -/// it should be replaced by the actual `InputAddedFilter` after it's deployed and published -#[derive(EthEvent)] -#[ethevent(name = "InputAdded", abi = "InputAdded(address,uint256,address,bytes)")] -pub struct InputAddedFilter { - #[ethevent(indexed)] - pub app_contract: ::ethers::core::types::Address, - #[ethevent(indexed)] - pub index: ::ethers::core::types::U256, - pub address: ethers::core::types::Address, - pub input: ::ethers::core::types::Bytes, -} - /// this is a placeholder for the non-existing epoch event -#[derive(EthEvent)] -#[ethevent(name = "EpochSealed", abi = "EpochSealed(uint256,uint256)")] -pub struct EpochSealedFilter { - #[ethevent(indexed)] - pub epoch_index: ::ethers::core::types::U256, - #[ethevent(indexed)] - pub input_count: ::ethers::core::types::U256, -} +// #[derive(EthEvent)] +// #[ethevent(name = "EpochSealed", abi = "EpochSealed(uint256,uint256)")] +// pub struct EpochSealedFilter { +// #[ethevent(indexed)] +// pub epoch_index: ::ethers::core::types::U256, +// #[ethevent(indexed)] +// pub input_count: ::ethers::core::types::U256, +// } #[derive(Debug, Clone, Parser)] #[command(name = "cartesi_rollups_config")] @@ -63,8 +57,8 @@ pub struct BlockchainReader { address_book: AddressBook, prev_block: u64, provider: PartitionProvider, - input_reader: EventReader, - epoch_reader: EventReader, + input_reader: EventReader, + epoch_reader: EventReader, sleep_duration: Duration, } @@ -90,8 +84,8 @@ where address_book, prev_block, provider: partition_provider, - input_reader: EventReader::::new(), - epoch_reader: EventReader::::new(), + input_reader: EventReader::::new(), + epoch_reader: EventReader::::new(), sleep_duration: Duration::from_secs(sleep_duration), }) } @@ -131,7 +125,7 @@ where .map_err(|e| BlockchainReaderError::StateManagerError(e))?; // read epochs from blockchain - let epochs: Vec = self.collect_epochs(prev_block, current_block).await?; + let epochs: Vec = self.collect_sealed_epochs(prev_block, current_block).await?; let latest_sealed_epoch = match epochs.last() { Some(e) => e.epoch_number, @@ -151,7 +145,7 @@ where Ok((inputs, epochs)) } - async fn collect_epochs(&self, prev_block: u64, current_block: u64) -> Result, SM> { + async fn collect_sealed_epochs(&self, prev_block: u64, current_block: u64) -> Result, SM> { Ok(self .epoch_reader .next( @@ -164,8 +158,10 @@ where .await? .iter() .map(|e| Epoch { - epoch_number: e.epoch_index.as_u64(), - input_count: e.input_count.as_u64(), + epoch_number: 0, + input_count: 0, + // epoch_number: e.epoch_index.as_u64(), + // input_count: e.input_count.as_u64(), }) .collect()) } @@ -182,7 +178,7 @@ where let input_events = self .input_reader .next( - Some(&self.address_book.app.into()), + Some(&self.address_book.app.into_word().into()), &self.address_book.input_box, prev_block, current_block, @@ -243,7 +239,7 @@ where epoch_number: u64, input_index_in_epoch_start: u64, input_index_in_epoch_end: u64, - input_events_iter: &mut impl Iterator, + input_events_iter: &mut impl Iterator, ) -> Vec { let mut inputs = vec![]; @@ -263,11 +259,11 @@ where } } -pub struct EventReader { +pub struct EventReader { __phantom: std::marker::PhantomData, } -impl EventReader { +impl EventReader { pub fn new() -> Self { Self { __phantom: std::marker::PhantomData, @@ -300,64 +296,54 @@ impl EventReader { } struct PartitionProvider { - inner: Provider, + inner: RootProvider>, } // Below is a simplified version originated from https://github.com/cartesi/state-fold // ParitionProvider will attempt to fetch events in smaller partition if the original request is too large impl PartitionProvider { - fn new(provider_url: &str) -> std::result::Result::Err> { - Ok(PartitionProvider { - inner: Provider::::try_from(provider_url)?, - }) + fn new(provider_url: &str) -> std::result::Result::Err> { + let url = provider_url.parse()?; + let provider = ProviderBuilder::new().on_http(url); + Ok(PartitionProvider { inner: provider }) } - async fn get_events( + async fn get_events( &self, topic1: Option<&Topic>, read_from: &Address, start_block: u64, end_block: u64, - ) -> std::result::Result, Vec> { + ) -> std::result::Result, Vec> { self.get_events_rec(topic1, read_from, start_block, end_block) .await } #[async_recursion] - async fn get_events_rec( + async fn get_events_rec( &self, topic1: Option<&Topic>, read_from: &Address, start_block: u64, end_block: u64, - ) -> std::result::Result, Vec> { + ) -> std::result::Result, Vec> { // TODO: partition log queries if range too large - let filter = { - let mut f = Filter::new() + let event = { + let mut e = Event::new_sol(&self.inner, read_from) .from_block(start_block) .to_block(end_block) - .address(*read_from) - .event(&E::abi_signature()); + .event(&E::SIGNATURE); if let Some(t) = topic1 { - f = f.topic1(t.clone()); + e = e.topic1(t.clone()); } - f - }; - - let res = { - // Make number of concurrent fetches bounded. - self.inner.get_logs(&filter).await + e }; - match res { + match event.query().await { Ok(l) => { - let logs = l - .into_iter() - .map(RawLog::from) - .map(|x| E::decode_log(&x).unwrap()) - .collect(); + let logs = l.into_iter().map(|x| x.0).collect(); Ok(logs) } @@ -399,18 +385,18 @@ impl PartitionProvider { async fn latest_finalized_block(&self) -> std::result::Result { let block_number = self .inner - .get_block(BlockNumber::Finalized) + .get_block(Finalized.into(), BlockTransactionsKind::Hashes) .await - .map_err(|e| ProviderErrors(vec![e]))? + .map_err(|e| ProviderErrors(vec![Error::TransportError(e)]))? .expect("block is empty") + .header .number - .expect("block number is empty") - .as_u64(); + .expect("block number is empty"); Ok(block_number) } - fn should_retry_with_partition(err: &ProviderError) -> bool { + fn should_retry_with_partition(err: &Error) -> bool { // infura limit error code: -32005 let query_limit_error_codes = [-32005]; for code in query_limit_error_codes { @@ -429,12 +415,14 @@ impl PartitionProvider { async fn test_input_reader() -> std::result::Result<(), Box> { let genesis = 17784733; let input_box = Address::from_str("0x59b22D57D4f067708AB0c00552767405926dc768")?; - let app = Address::from_str("0x0974cc873df893b302f6be7ecf4f9d4b1a15c366")?.into(); + let app = Address::from_str("0x0974cc873df893b302f6be7ecf4f9d4b1a15c366")? + .into_word() + .into(); let infura_key = std::env::var("INFURA_KEY").expect("INFURA_KEY is not set"); let partition_provider = PartitionProvider::new(format!("https://mainnet.infura.io/v3/{}", infura_key).as_ref())?; - let reader = EventReader::::new(); + let reader = EventReader::::new(); let res = reader .next( diff --git a/cartesi-rollups/node/dave-rollups/Cargo.toml b/cartesi-rollups/node/dave-rollups/Cargo.toml index 22710529..5b405da7 100644 --- a/cartesi-rollups/node/dave-rollups/Cargo.toml +++ b/cartesi-rollups/node/dave-rollups/Cargo.toml @@ -17,6 +17,7 @@ rollups-machine-runner = { workspace = true } rollups-state-manager = { workspace = true } cartesi-rollups-contracts = { workspace = true } +cartesi-prt-core = { workspace = true } alloy = { workspace = true } anyhow = { workspace = true } diff --git a/cartesi-rollups/node/dave-rollups/src/lib.rs b/cartesi-rollups/node/dave-rollups/src/lib.rs index 711f4af8..746f0894 100644 --- a/cartesi-rollups/node/dave-rollups/src/lib.rs +++ b/cartesi-rollups/node/dave-rollups/src/lib.rs @@ -1,3 +1,4 @@ +use cartesi_prt_core::arena::BlockchainConfig; use clap::Parser; use log::error; use rollups_blockchain_reader::{AddressBook, BlockchainReader}; @@ -8,7 +9,6 @@ use std::sync::Arc; use tokio::task::JoinHandle; use tokio::task::{spawn, spawn_blocking}; -const ANVIL_URL: &str = "http://127.0.0.1:8545"; const SLEEP_DURATION: u64 = 30; const SNAPSHOT_DURATION: u64 = 30; @@ -18,9 +18,8 @@ const SNAPSHOT_DURATION: u64 = 30; pub struct DaveParameters { #[command(flatten)] pub address_book: AddressBook, - - #[arg(long, env, default_value = ANVIL_URL)] - web3_rpc_url: String, + #[command(flatten)] + pub blockchain_config: BlockchainConfig, #[arg(long, env)] machine_path: String, #[arg(long, env, default_value_t = SLEEP_DURATION)] @@ -63,6 +62,7 @@ pub fn create_epoch_manager_task( spawn(async move { let mut epoch_manager = EpochManager::new( + ¶meters.blockchain_config, params.address_book.consensus, state_manager, params.sleep_duration, diff --git a/cartesi-rollups/node/epoch-manager/Cargo.toml b/cartesi-rollups/node/epoch-manager/Cargo.toml index 55f67d4f..c292bd0d 100644 --- a/cartesi-rollups/node/epoch-manager/Cargo.toml +++ b/cartesi-rollups/node/epoch-manager/Cargo.toml @@ -10,7 +10,9 @@ readme.workspace = true repository.workspace = true [dependencies] +cartesi-dave-contracts = { workspace = true } rollups-state-manager = { workspace = true } +cartesi-prt-core = { workspace = true } alloy = { workspace = true } anyhow = { workspace = true } tokio = { workspace = true } diff --git a/cartesi-rollups/node/epoch-manager/src/lib.rs b/cartesi-rollups/node/epoch-manager/src/lib.rs index 4a4918c2..8d5a3a2f 100644 --- a/cartesi-rollups/node/epoch-manager/src/lib.rs +++ b/cartesi-rollups/node/epoch-manager/src/lib.rs @@ -1,7 +1,9 @@ +use alloy::sol_types::private::Address; use anyhow::Result; -use ethers::types::Address; use std::{sync::Arc, time::Duration}; +use cartesi_dave_contracts::daveconsensus; +use cartesi_prt_core::arena::{BlockchainConfig, SenderFiller}; use rollups_state_manager::StateManager; // TODO: setup constants for commitment builder @@ -9,50 +11,66 @@ pub struct EpochManager { consensus: Address, sleep_duration: Duration, state_manager: Arc, - // sender: Provider + client: Arc, } -// view methods - -// sealedEpoch() -> (epochNumber: uint, canSettle: bool) - -// epoch(epochNumber: uint) -> ( -//  claim: Option<(bytes32, bool)>, // hash and whether challanged -// ) - impl EpochManager where ::Error: Send + Sync + 'static, { - pub fn new(consensus_address: Address, state_manager: Arc, sleep_duration: u64) -> Self { + pub fn new( + config: &BlockchainConfig, + consensus_address: Address, + state_manager: Arc, + sleep_duration: u64, + ) -> Self { + let signer = PrivateKeySigner::from_str(config.web3_private_key.as_str())?; + let wallet = EthereumWallet::from(signer); + let wallet_address = + >::default_signer_address(&wallet); + + let url = config.web3_rpc_url.parse()?; + let provider = ProviderBuilder::new() + .with_nonce_management() + .wallet(wallet) + .with_chain( + config + .web3_chain_id + .try_into() + .expect("fail to convert chain id"), + ) + .on_http(url); + let client = Arc::new(provider); + Self { consensus: consensus_address, sleep_duration: Duration::from_secs(sleep_duration), state_manager, + client, } } pub async fn start(&mut self) -> Result<()> { + let dave_consensus = daveconsensus::DaveConsensus::new(self.consensus, &self.client); loop { - // (sealed_epoch_index, can_settle) := ethcall sealedEpoch() - - // if can_settle then send settle_epoch tx - - // claim := ethcall epoch(sealed_epoch_index) - match self.state_manager.computation_hash(0)? { - Some(computation_hash) => { - // match claim - //  + None -> claim - //  + Some({x, false}) if x is same as comp_hash -> return; - //  + Some({x, false}) if x is not same comp_hash -> claim; - // + Some({_, true}) -> instantiate/join dave; - } - None => { - // wait for the `machine-runner` to insert the value + let can_settle = dave_consensus.canSettle().call().await?._0; + + if can_settle { + match self.state_manager.computation_hash(0)? { + Some(computation_hash) => { + dave_consensus.settle().send().await?.watch().await?; + // match claim + //  + None -> claim + //  + Some({x, false}) if x is same as comp_hash -> return; + //  + Some({x, false}) if x is not same comp_hash -> claim; + // + Some({_, true}) -> instantiate/join dave; + } + None => { + // wait for the `machine-runner` to insert the value + } } } - // sleep and come back later tokio::time::sleep(self.sleep_duration).await; } } diff --git a/cartesi-rollups/node/machine-runner/src/lib.rs b/cartesi-rollups/node/machine-runner/src/lib.rs index 678ae5a5..f6d72e18 100644 --- a/cartesi-rollups/node/machine-runner/src/lib.rs +++ b/cartesi-rollups/node/machine-runner/src/lib.rs @@ -218,11 +218,9 @@ where #[cfg(test)] mod tests { - use cartesi_rollups_contracts::inputs::EvmAdvanceCall as NewEvmAdvanceCall; - use ethers::{ - abi::AbiEncode, - types::{Address, U256}, - }; + use alloy::sol_types::private::{Address, U256}; + use cartesi_rollups_contracts::inputs::Inputs::EvmAdvanceCall; + use ethers::abi::AbiEncode; use rollups_state_manager::{Epoch, Input, InputId, StateManager}; use std::{str::FromStr, sync::Arc}; use thiserror::Error; @@ -415,35 +413,6 @@ mod tests { (machine_state_hashes, commitment) } - // TODO: use actual call type from the rollups_contract crate - /// this is the old call format, - /// it should be replaced by the actual `EvmAdvance` after it's deployed and published - #[derive( - Clone, - ethers::contract::EthCall, - ethers::contract::EthDisplay, - serde::Serialize, - serde::Deserialize, - Default, - Debug, - PartialEq, - Eq, - Hash, - )] - #[ethcall( - name = "EvmAdvance", - abi = "EvmAdvance(uint256,address,address,uint256,uint256,uint256,bytes)" - )] - pub struct EvmAdvanceCall { - pub chain_id: ::ethers::core::types::U256, - pub app_contract: ::ethers::core::types::Address, - pub msg_sender: ::ethers::core::types::Address, - pub block_number: ::ethers::core::types::U256, - pub block_timestamp: ::ethers::core::types::U256, - pub index: ::ethers::core::types::U256, - pub payload: ::ethers::core::types::Bytes, - } - fn load_inputs() -> Vec> { // this file stores all the inputs for one epoch let inputs_str = include_str!("../test-files/inputs.test"); @@ -459,13 +428,14 @@ mod tests { .enumerate() .map(|(i, h)| { EvmAdvanceCall { - chain_id, - app_contract, - msg_sender, - block_number, - block_timestamp, + chainId: chain_id, + appContract: app_contract, + msgSender: msg_sender, + blockNumber: block_number, + blockTimestamp: block_timestamp, index: U256::from(i), payload: hex_to_bytes(*h).unwrap().into(), + prevRandao: U256::ZERO, // TODO: what to put here? } .encode() }) @@ -476,6 +446,7 @@ mod tests { #[tokio::test] async fn test_input_advance() -> std::result::Result<(), Box> { + // TODO: update machine state hashes with new emulator version let (machine_state_hashes, commitment) = load_machine_state_hashes(); let inputs = load_inputs(); From b9c84c42530b88f768de7bb67fff1b35f9ab529d Mon Sep 17 00:00:00 2001 From: Stephen Chen <20940639+stephenctw@users.noreply.github.com> Date: Mon, 2 Sep 2024 16:56:54 +0800 Subject: [PATCH 07/12] feat: bump `alloy` to `0.3.1` --- cartesi-rollups/contract-bindings/Cargo.toml | 2 +- cartesi-rollups/node/Cargo.toml | 2 +- .../node/blockchain-reader/Cargo.toml | 4 +++- .../node/blockchain-reader/src/lib.rs | 13 +++++++++---- cartesi-rollups/node/epoch-manager/src/lib.rs | 16 ++++++++++------ cartesi-rollups/node/machine-runner/Cargo.toml | 2 +- cartesi-rollups/node/machine-runner/src/lib.rs | 17 ++++++++++------- common-rs/merkle/Cargo.toml | 2 +- prt/contract-bindings/Cargo.toml | 2 +- prt/prt-rs/Cargo.toml | 2 +- prt/prt-rs/compute/Cargo.toml | 2 +- 11 files changed, 39 insertions(+), 25 deletions(-) diff --git a/cartesi-rollups/contract-bindings/Cargo.toml b/cartesi-rollups/contract-bindings/Cargo.toml index 897d8370..75c50cd3 100644 --- a/cartesi-rollups/contract-bindings/Cargo.toml +++ b/cartesi-rollups/contract-bindings/Cargo.toml @@ -15,5 +15,5 @@ readme = "README.md" repository = "https://github.com/cartesi/dave" [dependencies] -alloy = { version = "0.2.1", features = ["sol-types", "contract"] } +alloy = { version = "0.3.1", features = ["sol-types", "contract"] } diff --git a/cartesi-rollups/node/Cargo.toml b/cartesi-rollups/node/Cargo.toml index 1a62ca90..f6b82b9b 100644 --- a/cartesi-rollups/node/Cargo.toml +++ b/cartesi-rollups/node/Cargo.toml @@ -34,7 +34,7 @@ cartesi-dave-contracts = { path = "../contract-bindings" } cartesi-dave-merkle = { path = "../../common-rs/merkle" } cartesi-prt-core = { path = "../../prt/prt-rs/core" } -alloy = { version = "0.2.1", features = ["sol-types", "contract", "network", "reqwest", "signers", "signer-local"] } +alloy = { version = "0.3.1", features = ["sol-types", "contract", "network", "reqwest", "signers", "signer-local"] } anyhow = "1.0" async-recursion = "1" async-trait = "0.1.74" diff --git a/cartesi-rollups/node/blockchain-reader/Cargo.toml b/cartesi-rollups/node/blockchain-reader/Cargo.toml index 33af75c8..0d18f90a 100644 --- a/cartesi-rollups/node/blockchain-reader/Cargo.toml +++ b/cartesi-rollups/node/blockchain-reader/Cargo.toml @@ -13,7 +13,6 @@ repository = { workspace = true } [dependencies] rollups-state-manager = { workspace = true } alloy = { workspace = true } -alloy-rpc-types-eth = "0.2.1" async-recursion = { workspace = true } cartesi-dave-contracts = { workspace = true } cartesi-rollups-contracts = { workspace = true } @@ -21,3 +20,6 @@ clap = { workspace = true } clap_derive = { workspace = true } thiserror = { workspace = true } tokio = { workspace = true } + +alloy-rpc-types-eth = "0.3.1" +num-traits = "0.2.19" diff --git a/cartesi-rollups/node/blockchain-reader/src/lib.rs b/cartesi-rollups/node/blockchain-reader/src/lib.rs index c5acd752..f2437226 100644 --- a/cartesi-rollups/node/blockchain-reader/src/lib.rs +++ b/cartesi-rollups/node/blockchain-reader/src/lib.rs @@ -125,7 +125,9 @@ where .map_err(|e| BlockchainReaderError::StateManagerError(e))?; // read epochs from blockchain - let epochs: Vec = self.collect_sealed_epochs(prev_block, current_block).await?; + let epochs: Vec = self + .collect_sealed_epochs(prev_block, current_block) + .await?; let latest_sealed_epoch = match epochs.last() { Some(e) => e.epoch_number, @@ -145,7 +147,11 @@ where Ok((inputs, epochs)) } - async fn collect_sealed_epochs(&self, prev_block: u64, current_block: u64) -> Result, SM> { + async fn collect_sealed_epochs( + &self, + prev_block: u64, + current_block: u64, + ) -> Result, SM> { Ok(self .epoch_reader .next( @@ -390,8 +396,7 @@ impl PartitionProvider { .map_err(|e| ProviderErrors(vec![Error::TransportError(e)]))? .expect("block is empty") .header - .number - .expect("block number is empty"); + .number; Ok(block_number) } diff --git a/cartesi-rollups/node/epoch-manager/src/lib.rs b/cartesi-rollups/node/epoch-manager/src/lib.rs index 8d5a3a2f..680b74dc 100644 --- a/cartesi-rollups/node/epoch-manager/src/lib.rs +++ b/cartesi-rollups/node/epoch-manager/src/lib.rs @@ -1,6 +1,11 @@ -use alloy::sol_types::private::Address; +use alloy::{ + network::{Ethereum, EthereumWallet, NetworkWallet}, + providers::ProviderBuilder, + signers::local::PrivateKeySigner, + sol_types::private::Address, +}; use anyhow::Result; -use std::{sync::Arc, time::Duration}; +use std::{str::FromStr, sync::Arc, time::Duration}; use cartesi_dave_contracts::daveconsensus; use cartesi_prt_core::arena::{BlockchainConfig, SenderFiller}; @@ -24,12 +29,11 @@ where state_manager: Arc, sleep_duration: u64, ) -> Self { - let signer = PrivateKeySigner::from_str(config.web3_private_key.as_str())?; + let signer = PrivateKeySigner::from_str(config.web3_private_key.as_str()) + .expect("fail to construct signer"); let wallet = EthereumWallet::from(signer); - let wallet_address = - >::default_signer_address(&wallet); - let url = config.web3_rpc_url.parse()?; + let url = config.web3_rpc_url.parse().expect("fail to parse url"); let provider = ProviderBuilder::new() .with_nonce_management() .wallet(wallet) diff --git a/cartesi-rollups/node/machine-runner/Cargo.toml b/cartesi-rollups/node/machine-runner/Cargo.toml index 24d75082..2bb1b6a9 100644 --- a/cartesi-rollups/node/machine-runner/Cargo.toml +++ b/cartesi-rollups/node/machine-runner/Cargo.toml @@ -10,6 +10,7 @@ readme.workspace = true repository.workspace = true [dependencies] +alloy = { workspace = true } cartesi-dave-arithmetic = { workspace = true } cartesi-dave-merkle = { workspace = true } cartesi-prt-core = { workspace = true } @@ -20,7 +21,6 @@ thiserror = { workspace = true } tokio = { workspace = true } [dev-dependencies] -alloy = { workspace = true } cartesi-rollups-contracts = { workspace = true } hex = "0.4.3" serde = "1" diff --git a/cartesi-rollups/node/machine-runner/src/lib.rs b/cartesi-rollups/node/machine-runner/src/lib.rs index f6d72e18..02e974f7 100644 --- a/cartesi-rollups/node/machine-runner/src/lib.rs +++ b/cartesi-rollups/node/machine-runner/src/lib.rs @@ -2,6 +2,7 @@ // SPDX-License-Identifier: Apache-2.0 (see LICENSE) mod error; +use alloy::sol_types::private::U256; use error::{MachineRunnerError, Result}; use std::{path::Path, sync::Arc, time::Duration}; @@ -132,17 +133,17 @@ where let mut total_repetitions = 0; for state_hash in &state_hashes { total_repetitions += state_hash.1; - builder.add_with_repetition( + builder.append_repeated( Digest::from_digest(&state_hash.0)?, - state_hash.1.into(), + U256::from(state_hash.1), ); } let stride_count_in_epoch = max_uint(LOG2_INPUT_SPAN + LOG2_EMULATOR_SPAN + LOG2_UARCH_SPAN - LOG2_STRIDE); - builder.add_with_repetition( + builder.append_repeated( Digest::from_digest(&state_hashes.last().unwrap().0)?, - (stride_count_in_epoch - total_repetitions + 1).into(), + U256::from(stride_count_in_epoch - total_repetitions + 1), ); let tree = builder.build(); @@ -218,9 +219,11 @@ where #[cfg(test)] mod tests { - use alloy::sol_types::private::{Address, U256}; + use alloy::sol_types::{ + private::{Address, U256}, + SolCall, + }; use cartesi_rollups_contracts::inputs::Inputs::EvmAdvanceCall; - use ethers::abi::AbiEncode; use rollups_state_manager::{Epoch, Input, InputId, StateManager}; use std::{str::FromStr, sync::Arc}; use thiserror::Error; @@ -437,7 +440,7 @@ mod tests { payload: hex_to_bytes(*h).unwrap().into(), prevRandao: U256::ZERO, // TODO: what to put here? } - .encode() + .abi_encode() }) .collect(); diff --git a/common-rs/merkle/Cargo.toml b/common-rs/merkle/Cargo.toml index 280b2629..59a9e458 100644 --- a/common-rs/merkle/Cargo.toml +++ b/common-rs/merkle/Cargo.toml @@ -11,7 +11,7 @@ readme = { workspace = true } repository = { workspace = true } [dependencies] -alloy = { version = "0.2.1", features = ["sol-types"] } +alloy = { version = "0.3.1", features = ["sol-types"] } hex = "0.4" ruint = "1.12" sha3 = "0.10" diff --git a/prt/contract-bindings/Cargo.toml b/prt/contract-bindings/Cargo.toml index 61114a96..515a7540 100644 --- a/prt/contract-bindings/Cargo.toml +++ b/prt/contract-bindings/Cargo.toml @@ -15,5 +15,5 @@ readme = "README.md" repository = "https://github.com/cartesi/dave" [dependencies] -alloy = { version = "0.2.1", features = ["sol-types", "contract"] } +alloy = { version = "0.3.1", features = ["sol-types", "contract"] } diff --git a/prt/prt-rs/Cargo.toml b/prt/prt-rs/Cargo.toml index f6a95650..a8516fe5 100644 --- a/prt/prt-rs/Cargo.toml +++ b/prt/prt-rs/Cargo.toml @@ -31,7 +31,7 @@ async-recursion = "1" async-trait = "0.1" clap = { version = "4.5", features = ["derive", "env"] } clap_derive = "=4.5.13" -alloy = { version = "0.2.1", features = ["sol-types", "contract", "network", "reqwest", "signers", "signer-local"] } +alloy = { version = "0.3.1", features = ["sol-types", "contract", "network", "reqwest", "signers", "signer-local"] } futures = "0.3" log = "0.4" tokio = { version = "1", features = ["full"] } diff --git a/prt/prt-rs/compute/Cargo.toml b/prt/prt-rs/compute/Cargo.toml index e0097057..18d3e300 100644 --- a/prt/prt-rs/compute/Cargo.toml +++ b/prt/prt-rs/compute/Cargo.toml @@ -12,7 +12,7 @@ repository = { workspace = true } [dependencies] cartesi-prt-core = { path = "../core" } -alloy = { version = "0.2.1", features = ["sol-types"] } +alloy = { version = "0.3.1", features = ["sol-types"] } anyhow = { workspace = true } clap = { workspace = true } tokio = { workspace = true } From 5c9c45cd7d721447a77bbfaecb1d1637fa72bf2b Mon Sep 17 00:00:00 2001 From: Stephen Chen <20940639+stephenctw@users.noreply.github.com> Date: Thu, 5 Sep 2024 20:50:13 +0800 Subject: [PATCH 08/12] feat: adopt `DaveConsensus` contract --- cartesi-rollups/node/Cargo.toml | 2 + .../node/blockchain-reader/src/lib.rs | 133 +++++++++--------- .../node/compute-runner/Cargo.toml | 14 ++ .../node/compute-runner/src/lib.rs | 72 ++++++++++ cartesi-rollups/node/dave-rollups/Cargo.toml | 2 + cartesi-rollups/node/dave-rollups/src/lib.rs | 27 ++++ cartesi-rollups/node/dave-rollups/src/main.rs | 10 +- cartesi-rollups/node/epoch-manager/src/lib.rs | 26 ++-- .../node/machine-runner/Cargo.toml | 2 - .../node/machine-runner/src/lib.rs | 12 +- cartesi-rollups/node/state-manager/src/lib.rs | 5 +- .../src/persistent_state_access.rs | 13 +- .../state-manager/src/sql/consensus_data.rs | 61 ++++++-- .../node/state-manager/src/sql/migrations.sql | 3 +- prt/prt-rs/core/src/arena/sender.rs | 2 +- 15 files changed, 276 insertions(+), 108 deletions(-) create mode 100644 cartesi-rollups/node/compute-runner/Cargo.toml create mode 100644 cartesi-rollups/node/compute-runner/src/lib.rs diff --git a/cartesi-rollups/node/Cargo.toml b/cartesi-rollups/node/Cargo.toml index f6b82b9b..46777432 100644 --- a/cartesi-rollups/node/Cargo.toml +++ b/cartesi-rollups/node/Cargo.toml @@ -24,6 +24,7 @@ repository = "https://github.com/cartesi/dave" [workspace.dependencies] rollups-blockchain-reader = { version = "0.1", path = "blockchain-reader" } +rollups-compute-runner = { version = "0.1", path = "compute-runner" } rollups-epoch-manager = { version = "0.1", path = "epoch-manager" } rollups-machine-runner = { version = "0.1", path = "machine-runner" } rollups-state-manager = { version = "0.1", path = "state-manager" } @@ -33,6 +34,7 @@ cartesi-dave-arithmetic = { path = "../../common-rs/arithmetic" } cartesi-dave-contracts = { path = "../contract-bindings" } cartesi-dave-merkle = { path = "../../common-rs/merkle" } cartesi-prt-core = { path = "../../prt/prt-rs/core" } +cartesi-prt-compute = { path = "../../prt/prt-rs/compute" } alloy = { version = "0.3.1", features = ["sol-types", "contract", "network", "reqwest", "signers", "signer-local"] } anyhow = "1.0" diff --git a/cartesi-rollups/node/blockchain-reader/src/lib.rs b/cartesi-rollups/node/blockchain-reader/src/lib.rs index f2437226..6d5e05e5 100644 --- a/cartesi-rollups/node/blockchain-reader/src/lib.rs +++ b/cartesi-rollups/node/blockchain-reader/src/lib.rs @@ -17,6 +17,7 @@ use alloy_rpc_types_eth::Topic; use async_recursion::async_recursion; use clap::Parser; use error::BlockchainReaderError; +use num_traits::cast::ToPrimitive; use std::{ marker::{Send, Sync}, str::FromStr, @@ -24,19 +25,10 @@ use std::{ time::Duration, }; +use cartesi_dave_contracts::daveconsensus::DaveConsensus::EpochSealed; use cartesi_rollups_contracts::inputbox::InputBox::InputAdded; use rollups_state_manager::{Epoch, Input, InputId, StateManager}; -/// this is a placeholder for the non-existing epoch event -// #[derive(EthEvent)] -// #[ethevent(name = "EpochSealed", abi = "EpochSealed(uint256,uint256)")] -// pub struct EpochSealedFilter { -// #[ethevent(indexed)] -// pub epoch_index: ::ethers::core::types::U256, -// #[ethevent(indexed)] -// pub input_count: ::ethers::core::types::U256, -// } - #[derive(Debug, Clone, Parser)] #[command(name = "cartesi_rollups_config")] #[command(about = "Addresses of Cartesi Rollups")] @@ -58,7 +50,7 @@ pub struct BlockchainReader { prev_block: u64, provider: PartitionProvider, input_reader: EventReader, - epoch_reader: EventReader, + epoch_reader: EventReader, sleep_duration: Duration, } @@ -85,7 +77,7 @@ where prev_block, provider: partition_provider, input_reader: EventReader::::new(), - epoch_reader: EventReader::::new(), + epoch_reader: EventReader::::new(), sleep_duration: Duration::from_secs(sleep_duration), }) } @@ -119,32 +111,21 @@ where prev_block: u64, current_block: u64, ) -> Result<(Vec, Vec), SM> { - let prev_sealed_epoch = self - .state_manager - .epoch_count() - .map_err(|e| BlockchainReaderError::StateManagerError(e))?; - - // read epochs from blockchain - let epochs: Vec = self + // read sealed epochs from blockchain + let sealed_epochs: Vec = self .collect_sealed_epochs(prev_block, current_block) .await?; - let latest_sealed_epoch = match epochs.last() { - Some(e) => e.epoch_number, - None => prev_sealed_epoch, - }; - // read inputs from blockchain let inputs = self .collect_inputs( prev_block, current_block, - prev_sealed_epoch, - latest_sealed_epoch, + sealed_epochs.iter().collect::>().into_iter(), ) .await?; - Ok((inputs, epochs)) + Ok((inputs, sealed_epochs)) } async fn collect_sealed_epochs( @@ -164,10 +145,17 @@ where .await? .iter() .map(|e| Epoch { - epoch_number: 0, - input_count: 0, - // epoch_number: e.epoch_index.as_u64(), - // input_count: e.input_count.as_u64(), + epoch_number: e + .0 + .epochNumber + .to_u64() + .expect("fail to convert epoch number"), + epoch_boundary: e + .0 + .blockNumberUpperBound + .to_u64() + .expect("fail to convert epoch boundary"), + root_tournament: e.0.tournament.to_string(), }) .collect()) } @@ -176,11 +164,9 @@ where &self, prev_block: u64, current_block: u64, - prev_sealed_epoch: u64, - latest_sealed_epoch: u64, + sealed_epochs_iter: impl Iterator, ) -> Result, SM> { // read new inputs from blockchain - // collected inputs should belong to `prev_sealed_epoch` + 1 and/or later epochs let input_events = self .input_reader .next( @@ -192,45 +178,43 @@ where ) .await?; + let last_input = self + .state_manager + .last_input() + .map_err(|e| BlockchainReaderError::StateManagerError(e))?; + + let (mut next_input_index_in_epoch, mut last_epoch_number) = { + match last_input { + // continue inserting inputs from where it was left + Some(input) => (input.input_index_in_epoch + 1, input.epoch_number), + // first ever input for the application + None => (0, 0), + } + }; + let mut inputs = vec![]; - let input_events_len = input_events.len(); - let mut input_events_iter = input_events.into_iter(); - - // all inputs from `prev_sealed_epoch` should be in database already because it's sealed in previous tick - for epoch_number in prev_sealed_epoch + 1..latest_sealed_epoch + 1 { - // iterate through newly sealed epochs - // get total input count submitted to the sealed epoch - let total_input_count_of_epoch = self - .state_manager - .epoch(epoch_number) - .map_err(|e| BlockchainReaderError::StateManagerError(e))? - .unwrap() - .input_count; - // get input count of epoch that currently exist in database - let current_input_count_of_epoch = self - .state_manager - .input_count(epoch_number) - .map_err(|e| BlockchainReaderError::StateManagerError(e))?; - - // fill in the inputs of the sealed epoch + let mut input_events_iter = input_events.iter(); + for epoch in sealed_epochs_iter { + // iterate through newly sealed epochs, fill in the inputs accordingly let inputs_of_epoch = self .construct_input_ids( - epoch_number, - current_input_count_of_epoch, - total_input_count_of_epoch, + epoch.epoch_number, + epoch.epoch_boundary, + &mut next_input_index_in_epoch, &mut input_events_iter, ) .await; inputs.extend(inputs_of_epoch); + last_epoch_number = epoch.epoch_number + 1; } // all remaining inputs belong to an epoch that's not sealed yet let inputs_of_epoch = self .construct_input_ids( - latest_sealed_epoch + 1, - 0, - (input_events_len - inputs.len()).try_into().unwrap(), + last_epoch_number, + u64::MAX, + &mut next_input_index_in_epoch, &mut input_events_iter, ) .await; @@ -243,23 +227,32 @@ where async fn construct_input_ids( &self, epoch_number: u64, - input_index_in_epoch_start: u64, - input_index_in_epoch_end: u64, - input_events_iter: &mut impl Iterator, + epoch_boundary: u64, + next_input_index_in_epoch: &mut u64, + input_events_iter: &mut impl Iterator, ) -> Vec { let mut inputs = vec![]; - for input_index_in_epoch in input_index_in_epoch_start..input_index_in_epoch_end { + while input_events_iter + .peekable() + .peek() + .expect("fail to get peek next input") + .1 + < epoch_boundary + { let input = Input { id: InputId { epoch_number, - input_index_in_epoch, + input_index_in_epoch: *next_input_index_in_epoch, }, - data: input_events_iter.next().unwrap().input.to_vec(), + data: input_events_iter.next().unwrap().0.input.to_vec(), }; + *next_input_index_in_epoch += 1; inputs.push(input); } + // input index in epoch should be reset when a new epoch starts + *next_input_index_in_epoch = 0; inputs } @@ -283,7 +276,7 @@ impl EventReader { prev_finalized: u64, current_finalized: u64, provider: &PartitionProvider, - ) -> std::result::Result, ProviderErrors> { + ) -> std::result::Result)>, ProviderErrors> { assert!(current_finalized > prev_finalized); let logs = provider @@ -320,7 +313,7 @@ impl PartitionProvider { read_from: &Address, start_block: u64, end_block: u64, - ) -> std::result::Result, Vec> { + ) -> std::result::Result)>, Vec> { self.get_events_rec(topic1, read_from, start_block, end_block) .await } @@ -332,7 +325,7 @@ impl PartitionProvider { read_from: &Address, start_block: u64, end_block: u64, - ) -> std::result::Result, Vec> { + ) -> std::result::Result)>, Vec> { // TODO: partition log queries if range too large let event = { let mut e = Event::new_sol(&self.inner, read_from) @@ -349,7 +342,7 @@ impl PartitionProvider { match event.query().await { Ok(l) => { - let logs = l.into_iter().map(|x| x.0).collect(); + let logs = l.into_iter().map(|x| (x.0, x.1.block_number)).collect(); Ok(logs) } diff --git a/cartesi-rollups/node/compute-runner/Cargo.toml b/cartesi-rollups/node/compute-runner/Cargo.toml new file mode 100644 index 00000000..0bbedb93 --- /dev/null +++ b/cartesi-rollups/node/compute-runner/Cargo.toml @@ -0,0 +1,14 @@ +[package] +name = "rollups-compute-runner" +version.workspace = true +authors.workspace = true +description.workspace = true +edition.workspace = true +homepage.workspace = true +license-file.workspace = true +readme.workspace = true +repository.workspace = true + +[dependencies] +cartesi-prt-core = { workspace = true } +rollups-state-manager = { workspace = true } diff --git a/cartesi-rollups/node/compute-runner/src/lib.rs b/cartesi-rollups/node/compute-runner/src/lib.rs new file mode 100644 index 00000000..efbe00db --- /dev/null +++ b/cartesi-rollups/node/compute-runner/src/lib.rs @@ -0,0 +1,72 @@ +use std::process::Command; +use std::result::Result; +use std::{sync::Arc, time::Duration}; + +use cartesi_prt_core::arena::BlockchainConfig; +use rollups_state_manager::{Epoch, StateManager}; + +pub struct ComputeRunner { + config: BlockchainConfig, + last_processed_epoch: Epoch, + sleep_duration: Duration, + state_manager: Arc, +} + +impl ComputeRunner +where + ::Error: Send + Sync + 'static, +{ + pub fn new( + config: &BlockchainConfig, + state_manager: Arc, + sleep_duration: u64, + ) -> Result::Error> { + let last_sealed_epoch = state_manager.last_epoch()?; + let last_processed_epoch = { + match last_sealed_epoch { + Some(e) => { + spawn_dave_process(config, &e); + e + } + None => Epoch { + epoch_number: 0, + epoch_boundary: 0, + root_tournament: String::new(), + }, + } + }; + + Ok(Self { + config: config.clone(), + last_processed_epoch, + sleep_duration: Duration::from_secs(sleep_duration), + state_manager, + }) + } + + pub fn start(&mut self) -> Result<(), ::Error> { + loop { + let last_sealed_epoch = self.state_manager.last_epoch()?; + if let Some(e) = last_sealed_epoch { + if e.epoch_number != self.last_processed_epoch.epoch_number + || e.epoch_boundary != self.last_processed_epoch.epoch_boundary + || e.root_tournament != self.last_processed_epoch.root_tournament + { + spawn_dave_process(&self.config, &e); + self.last_processed_epoch = e; + } + } + + std::thread::sleep(self.sleep_duration); + } + } +} + +fn spawn_dave_process(config: &BlockchainConfig, epoch: &Epoch) { + // Create a command to run `dave-compute` + let cmd = Command::new("cartesi-prt-compute") + .env("key", "val") // TODO: set up config properly + .current_dir("path to the binary") + .spawn() + .expect("fail to spawn dave compute process"); +} diff --git a/cartesi-rollups/node/dave-rollups/Cargo.toml b/cartesi-rollups/node/dave-rollups/Cargo.toml index 5b405da7..f5359d3f 100644 --- a/cartesi-rollups/node/dave-rollups/Cargo.toml +++ b/cartesi-rollups/node/dave-rollups/Cargo.toml @@ -12,12 +12,14 @@ repository = { workspace = true } [dependencies] rollups-blockchain-reader = { workspace = true } +rollups-compute-runner = { workspace = true } rollups-epoch-manager = { workspace = true } rollups-machine-runner = { workspace = true } rollups-state-manager = { workspace = true } cartesi-rollups-contracts = { workspace = true } cartesi-prt-core = { workspace = true } +cartesi-prt-compute = { workspace = true } alloy = { workspace = true } anyhow = { workspace = true } diff --git a/cartesi-rollups/node/dave-rollups/src/lib.rs b/cartesi-rollups/node/dave-rollups/src/lib.rs index 746f0894..86cdbba1 100644 --- a/cartesi-rollups/node/dave-rollups/src/lib.rs +++ b/cartesi-rollups/node/dave-rollups/src/lib.rs @@ -1,10 +1,15 @@ +use alloy::primitives::Address; use cartesi_prt_core::arena::BlockchainConfig; + use clap::Parser; +use dave_runner::DaveRunner; use log::error; use rollups_blockchain_reader::{AddressBook, BlockchainReader}; +use rollups_compute_runner::ComputeRunner; use rollups_epoch_manager::EpochManager; use rollups_machine_runner::MachineRunner; use rollups_state_manager::persistent_state_access::PersistentStateAccess; +use rusqlite::config; use std::sync::Arc; use tokio::task::JoinHandle; use tokio::task::{spawn, spawn_blocking}; @@ -54,6 +59,28 @@ pub fn create_blockchain_reader_task( }) } +pub fn create_compute_runner_task( + state_manager: Arc, + parameters: &DaveParameters, +) -> JoinHandle<()> { + let params = parameters.clone(); + + spawn_blocking(move || { + let mut compute_runner = ComputeRunner::new( + ¶ms.blockchain_config, + state_manager, + params.sleep_duration, + ) + .inspect_err(|e| error!("{e}")) + .unwrap(); + + compute_runner + .start() + .inspect_err(|e| error!("{e}")) + .unwrap(); + }) +} + pub fn create_epoch_manager_task( state_manager: Arc, parameters: &DaveParameters, diff --git a/cartesi-rollups/node/dave-rollups/src/main.rs b/cartesi-rollups/node/dave-rollups/src/main.rs index 40538017..bc1a74b8 100644 --- a/cartesi-rollups/node/dave-rollups/src/main.rs +++ b/cartesi-rollups/node/dave-rollups/src/main.rs @@ -1,8 +1,8 @@ use anyhow::Result; use clap::Parser; use dave_rollups::{ - create_blockchain_reader_task, create_epoch_manager_task, create_machine_runner_task, - DaveParameters, + create_blockchain_reader_task, create_compute_runner_task, create_epoch_manager_task, + create_machine_runner_task, DaveParameters, }; use log::info; use rollups_state_manager::persistent_state_access::PersistentStateAccess; @@ -23,11 +23,13 @@ async fn main() -> Result<()> { let blockchain_reader_task = create_blockchain_reader_task(state_manager.clone(), ¶meters); let epoch_manager_task = create_epoch_manager_task(state_manager.clone(), ¶meters); let machine_runner_task = create_machine_runner_task(state_manager.clone(), ¶meters); + let compute_runner_task = create_compute_runner_task(state_manager.clone(), ¶meters); - let (_blockchain_reader_res, _epoch_manager_res, _machine_runner_res) = futures::join!( + let (_blockchain_reader_res, _epoch_manager_res, _machine_runner_res, _compute_runner_res) = futures::join!( blockchain_reader_task, epoch_manager_task, - machine_runner_task + machine_runner_task, + compute_runner_task ); Ok(()) diff --git a/cartesi-rollups/node/epoch-manager/src/lib.rs b/cartesi-rollups/node/epoch-manager/src/lib.rs index 680b74dc..74e7b305 100644 --- a/cartesi-rollups/node/epoch-manager/src/lib.rs +++ b/cartesi-rollups/node/epoch-manager/src/lib.rs @@ -1,6 +1,6 @@ use alloy::{ - network::{Ethereum, EthereumWallet, NetworkWallet}, - providers::ProviderBuilder, + network::EthereumWallet, + providers::{fillers::NonceFiller, ProviderBuilder}, signers::local::PrivateKeySigner, sol_types::private::Address, }; @@ -11,7 +11,6 @@ use cartesi_dave_contracts::daveconsensus; use cartesi_prt_core::arena::{BlockchainConfig, SenderFiller}; use rollups_state_manager::StateManager; -// TODO: setup constants for commitment builder pub struct EpochManager { consensus: Address, sleep_duration: Duration, @@ -35,7 +34,7 @@ where let url = config.web3_rpc_url.parse().expect("fail to parse url"); let provider = ProviderBuilder::new() - .with_nonce_management() + .filler(NonceFiller::default()) .wallet(wallet) .with_chain( config @@ -54,20 +53,21 @@ where } } - pub async fn start(&mut self) -> Result<()> { + pub async fn start(&self) -> Result<()> { let dave_consensus = daveconsensus::DaveConsensus::new(self.consensus, &self.client); loop { - let can_settle = dave_consensus.canSettle().call().await?._0; + let can_settle = dave_consensus.canSettle().call().await?; - if can_settle { + if can_settle.isFinished { match self.state_manager.computation_hash(0)? { Some(computation_hash) => { - dave_consensus.settle().send().await?.watch().await?; - // match claim - //  + None -> claim - //  + Some({x, false}) if x is same as comp_hash -> return; - //  + Some({x, false}) if x is not same comp_hash -> claim; - // + Some({_, true}) -> instantiate/join dave; + dave_consensus + .settle(can_settle.epochNumber) + .send() + .await? + .watch() + .await?; + // TODO: if claim doesn't match, that can be a serious problem, send out alert } None => { // wait for the `machine-runner` to insert the value diff --git a/cartesi-rollups/node/machine-runner/Cargo.toml b/cartesi-rollups/node/machine-runner/Cargo.toml index 2bb1b6a9..9a7fec55 100644 --- a/cartesi-rollups/node/machine-runner/Cargo.toml +++ b/cartesi-rollups/node/machine-runner/Cargo.toml @@ -18,9 +18,7 @@ cartesi-machine = { workspace = true } rollups-state-manager = { workspace = true } thiserror = { workspace = true } -tokio = { workspace = true } [dev-dependencies] cartesi-rollups-contracts = { workspace = true } hex = "0.4.3" -serde = "1" diff --git a/cartesi-rollups/node/machine-runner/src/lib.rs b/cartesi-rollups/node/machine-runner/src/lib.rs index 02e974f7..e1177c74 100644 --- a/cartesi-rollups/node/machine-runner/src/lib.rs +++ b/cartesi-rollups/node/machine-runner/src/lib.rs @@ -266,6 +266,10 @@ mod tests { Ok(self.inputs.len() as u64) } + fn last_epoch(&self) -> Result> { + panic!("last_epoch not implemented in mock version"); + } + fn input(&self, id: &InputId) -> Result> { let (epoch_number, input_index_in_epoch) = (id.epoch_number as usize, id.input_index_in_epoch as usize); @@ -283,6 +287,10 @@ mod tests { })) } + fn last_input(&self) -> Result> { + panic!("last_input not implemented in mock version"); + } + fn input_count(&self, epoch_number: u64) -> Result { let input_count = self.inputs[epoch_number as usize].len(); Ok(input_count as u64) @@ -447,8 +455,8 @@ mod tests { inputs } - #[tokio::test] - async fn test_input_advance() -> std::result::Result<(), Box> { + #[test] + fn test_input_advance() -> std::result::Result<(), Box> { // TODO: update machine state hashes with new emulator version let (machine_state_hashes, commitment) = load_machine_state_hashes(); let inputs = load_inputs(); diff --git a/cartesi-rollups/node/state-manager/src/lib.rs b/cartesi-rollups/node/state-manager/src/lib.rs index 3380a963..bdef641c 100644 --- a/cartesi-rollups/node/state-manager/src/lib.rs +++ b/cartesi-rollups/node/state-manager/src/lib.rs @@ -70,7 +70,8 @@ pub struct Input { #[derive(Clone, Debug)] pub struct Epoch { pub epoch_number: u64, - pub input_count: u64, + pub epoch_boundary: u64, + pub root_tournament: String, } pub trait StateManager { @@ -82,8 +83,10 @@ pub trait StateManager { fn epoch(&self, epoch_number: u64) -> Result, Self::Error>; fn epoch_count(&self) -> Result; + fn last_epoch(&self) -> Result, Self::Error>; fn input(&self, id: &InputId) -> Result, Self::Error>; fn input_count(&self, epoch_number: u64) -> Result; + fn last_input(&self) -> Result, Self::Error>; fn insert_consensus_data<'a>( &self, last_processed_block: u64, diff --git a/cartesi-rollups/node/state-manager/src/persistent_state_access.rs b/cartesi-rollups/node/state-manager/src/persistent_state_access.rs index f315bee1..6d277f4a 100644 --- a/cartesi-rollups/node/state-manager/src/persistent_state_access.rs +++ b/cartesi-rollups/node/state-manager/src/persistent_state_access.rs @@ -37,6 +37,11 @@ impl StateManager for PersistentStateAccess { consensus_data::epoch_count(&conn) } + fn last_epoch(&self) -> Result> { + let conn = self.connection.lock().unwrap(); + consensus_data::last_epoch(&conn) + } + fn input(&self, id: &InputId) -> Result> { let conn = self.connection.lock().unwrap(); consensus_data::input(&conn, id) @@ -47,6 +52,11 @@ impl StateManager for PersistentStateAccess { consensus_data::input_count(&conn, epoch_number) } + fn last_input(&self) -> Result> { + let conn = self.connection.lock().unwrap(); + consensus_data::last_input(&conn) + } + fn latest_processed_block(&self) -> Result { let conn = self.connection.lock().unwrap(); consensus_data::last_processed_block(&conn) @@ -336,7 +346,8 @@ mod tests { .into_iter(), [&Epoch { epoch_number: 0, - input_count: 12, + epoch_boundary: 12, + root_tournament: String::new(), }] .into_iter(), )?; diff --git a/cartesi-rollups/node/state-manager/src/sql/consensus_data.rs b/cartesi-rollups/node/state-manager/src/sql/consensus_data.rs index 3ba45368..2d25b6b5 100644 --- a/cartesi-rollups/node/state-manager/src/sql/consensus_data.rs +++ b/cartesi-rollups/node/state-manager/src/sql/consensus_data.rs @@ -164,7 +164,11 @@ pub fn insert_epochs<'a>( }); } - stmt.execute(params![epoch.epoch_number, epoch.input_count])?; + stmt.execute(params![ + epoch.epoch_number, + epoch.epoch_boundary, + epoch.root_tournament + ])?; next_epoch += 1; } Ok(()) @@ -173,15 +177,35 @@ pub fn insert_epochs<'a>( fn insert_epoch_statement<'a>(conn: &'a rusqlite::Connection) -> Result> { Ok(conn.prepare( "\ - INSERT INTO epochs (epoch_number, input_count) VALUES (?1, ?2) + INSERT INTO epochs (epoch_number, epoch_boundary, root_tournament) VALUES (?1, ?2, ?3) ", )?) } +pub fn last_epoch(conn: &rusqlite::Connection) -> Result> { + let mut stmt = conn.prepare( + "\ + SELECT epoch_number, epoch_boundary, root_tournament FROM epochs + ORDER BY epoch_number DESC + LIMIT 1 + ", + )?; + + Ok(stmt + .query_row([], |row| { + Ok(Epoch { + epoch_number: row.get(0)?, + epoch_boundary: row.get(1)?, + root_tournament: row.get(2)?, + }) + }) + .optional()?) +} + pub fn epoch(conn: &rusqlite::Connection, epoch_number: u64) -> Result> { let mut stmt = conn.prepare( "\ - SELECT input_count FROM epochs + SELECT epoch_boundary, root_tournament FROM epochs WHERE epoch_number = ?1 ", )?; @@ -190,7 +214,8 @@ pub fn epoch(conn: &rusqlite::Connection, epoch_number: u64) -> Result = (1..128) .map(|i| Epoch { epoch_number: i, - input_count: 0, + epoch_boundary: 0, + root_tournament: String::new(), }) .collect(); assert!(matches!(insert_epochs(&conn, x.iter()), Ok(()))); @@ -549,15 +578,18 @@ mod epochs_tests { [ &Epoch { epoch_number: 128, - input_count: 0, + epoch_boundary: 0, + root_tournament: String::new(), }, &Epoch { epoch_number: 129, - input_count: 0, + epoch_boundary: 0, + root_tournament: String::new(), }, &Epoch { epoch_number: 131, - input_count: 0, + epoch_boundary: 0, + root_tournament: String::new(), } ] .into_iter(), @@ -569,13 +601,15 @@ mod epochs_tests { )); assert!(matches!(epoch_count(&conn), Ok(130))); + let tournament_address = "0x8dA443F84fEA710266C8eB6bC34B71702d033EF2".to_string(); assert!(matches!(epoch(&conn, 130), Ok(None))); assert!(matches!( insert_epochs( &conn, [&Epoch { epoch_number: 130, - input_count: 99, + epoch_boundary: 99, + root_tournament: tournament_address, }] .into_iter(), ), @@ -585,7 +619,8 @@ mod epochs_tests { epoch(&conn, 130), Ok(Some(Epoch { epoch_number: 130, - input_count: 99, + epoch_boundary: 99, + root_tournament: tournament_address, })) )); } diff --git a/cartesi-rollups/node/state-manager/src/sql/migrations.sql b/cartesi-rollups/node/state-manager/src/sql/migrations.sql index 7c774f94..ca527382 100644 --- a/cartesi-rollups/node/state-manager/src/sql/migrations.sql +++ b/cartesi-rollups/node/state-manager/src/sql/migrations.sql @@ -5,7 +5,8 @@ CREATE TABLE computation_hashes ( CREATE TABLE epochs ( epoch_number INTEGER NOT NULL PRIMARY KEY, - input_count INTEGER NOT NULL + epoch_boundary INTEGER NOT NULL, + root_tournament TEXT NOT NULL ); CREATE TABLE inputs ( diff --git a/prt/prt-rs/core/src/arena/sender.rs b/prt/prt-rs/core/src/arena/sender.rs index 46d3d787..903e7314 100644 --- a/prt/prt-rs/core/src/arena/sender.rs +++ b/prt/prt-rs/core/src/arena/sender.rs @@ -49,7 +49,7 @@ impl EthArenaSender { let url = config.web3_rpc_url.parse()?; let provider = ProviderBuilder::new() - .with_nonce_management() + .filler(NonceFiller::default()) .wallet(wallet) .with_chain( config From ffb82683e57b1f6840fb363915107cbbca86ea17 Mon Sep 17 00:00:00 2001 From: Stephen Chen <20940639+stephenctw@users.noreply.github.com> Date: Sat, 7 Sep 2024 17:49:56 +0800 Subject: [PATCH 09/12] fix(prt-rs): update tests after refactor --- cartesi-rollups/node/epoch-manager/src/lib.rs | 6 ++---- prt/client-lua/player/strategy.lua | 1 + prt/prt-rs/Dockerfile | 6 +++--- prt/prt-rs/README.md | 3 +++ prt/prt-rs/core/src/arena/sender.rs | 9 ++++++--- prt/tests/compute/prt_compute.lua | 2 +- 6 files changed, 16 insertions(+), 11 deletions(-) diff --git a/cartesi-rollups/node/epoch-manager/src/lib.rs b/cartesi-rollups/node/epoch-manager/src/lib.rs index 74e7b305..2e810b6f 100644 --- a/cartesi-rollups/node/epoch-manager/src/lib.rs +++ b/cartesi-rollups/node/epoch-manager/src/lib.rs @@ -1,7 +1,5 @@ use alloy::{ - network::EthereumWallet, - providers::{fillers::NonceFiller, ProviderBuilder}, - signers::local::PrivateKeySigner, + network::EthereumWallet, providers::ProviderBuilder, signers::local::PrivateKeySigner, sol_types::private::Address, }; use anyhow::Result; @@ -34,7 +32,7 @@ where let url = config.web3_rpc_url.parse().expect("fail to parse url"); let provider = ProviderBuilder::new() - .filler(NonceFiller::default()) + .with_recommended_fillers() .wallet(wallet) .with_chain( config diff --git a/prt/client-lua/player/strategy.lua b/prt/client-lua/player/strategy.lua index 2addfde6..7e030049 100644 --- a/prt/client-lua/player/strategy.lua +++ b/prt/client-lua/player/strategy.lua @@ -266,6 +266,7 @@ function HonestStrategy:_react_tournament(tournament, log) if tournament_winner.commitment ~= old_commitment.root_hash then helper.log_timestamp("player lost tournament") log.finished = true + return end helper.log_timestamp(string.format( diff --git a/prt/prt-rs/Dockerfile b/prt/prt-rs/Dockerfile index 33a676ea..698ef0df 100644 --- a/prt/prt-rs/Dockerfile +++ b/prt/prt-rs/Dockerfile @@ -1,4 +1,4 @@ -FROM rust:1.78.0-bookworm AS chef +FROM rust:1.79.0-bookworm AS chef ENV CARGO_REGISTRIES_CARTESI_INDEX=https://github.com/cartesi/crates-index RUN rustup component add rustfmt @@ -66,5 +66,5 @@ WORKDIR /root/prt/contracts RUN forge --version RUN forge build -WORKDIR /root/prt -ENTRYPOINT ["./lua_poc/compute-test-entrypoint.sh"] +WORKDIR /root/prt/tests/compute +ENTRYPOINT ["./compute-test-entrypoint.sh"] diff --git a/prt/prt-rs/README.md b/prt/prt-rs/README.md index cd864f48..ca38f662 100644 --- a/prt/prt-rs/README.md +++ b/prt/prt-rs/README.md @@ -19,6 +19,7 @@ Requires image built from [previous section](#build-test-image). ``` docker run --rm \ --env MACHINE_PATH="/root/program/simple-program" \ + --env LUA_NODE="false" \ cartesi/prt-compute:rs ``` @@ -29,6 +30,7 @@ Requires image built from [previous section](#build-test-image). ``` docker run --rm \ --env MACHINE_PATH="/root/program/debootstrap-machine-sparsed" \ + --env LUA_NODE="false" \ cartesi/prt-compute:rs ``` @@ -39,5 +41,6 @@ Requires image built from [previous section](#build-test-image). ``` docker run --rm \ --env MACHINE_PATH="/root/program/doom-compute-machine" \ + --env LUA_NODE="false" \ cartesi/prt-compute:rs ``` diff --git a/prt/prt-rs/core/src/arena/sender.rs b/prt/prt-rs/core/src/arena/sender.rs index 903e7314..9f40e311 100644 --- a/prt/prt-rs/core/src/arena/sender.rs +++ b/prt/prt-rs/core/src/arena/sender.rs @@ -8,7 +8,7 @@ use alloy::{ contract::Error as ContractError, network::{Ethereum, EthereumWallet, NetworkWallet}, providers::{ - fillers::{FillProvider, JoinFill, NonceFiller, WalletFiller}, + fillers::{ChainIdFiller, FillProvider, GasFiller, JoinFill, NonceFiller, WalletFiller}, Identity, Provider, ProviderBuilder, RootProvider, }, signers::local::PrivateKeySigner, @@ -27,7 +27,10 @@ use cartesi_dave_merkle::{Digest, MerkleProof}; use cartesi_prt_contracts::{leaftournament, nonleaftournament, tournament}; pub type SenderFiller = FillProvider< - JoinFill, WalletFiller>, + JoinFill< + JoinFill, NonceFiller>, ChainIdFiller>, + WalletFiller, + >, RootProvider>, Http, Ethereum, @@ -49,7 +52,7 @@ impl EthArenaSender { let url = config.web3_rpc_url.parse()?; let provider = ProviderBuilder::new() - .filler(NonceFiller::default()) + .with_recommended_fillers() .wallet(wallet) .with_chain( config diff --git a/prt/tests/compute/prt_compute.lua b/prt/tests/compute/prt_compute.lua index 6b0ad284..a50aa584 100755 --- a/prt/tests/compute/prt_compute.lua +++ b/prt/tests/compute/prt_compute.lua @@ -43,7 +43,7 @@ local function setup_players(commands, use_lua_node, extra_data, contract_addres print("Setting up Rust honest player") table.insert(commands, string.format( [[sh -c "echo $$ ; exec env MACHINE_PATH='%s' RUST_LOG='info' \ - ./prt-rs/target/release/cartesi-prt-compute 2>&1 | tee honest.log"]], + ../../prt-rs/target/release/cartesi-prt-compute 2>&1 | tee honest.log"]], machine_path)) end player_index = player_index + 1 From 8c5b7ac4fd89111ff866253e93d36eb12210cc65 Mon Sep 17 00:00:00 2001 From: Stephen Chen <20940639+stephenctw@users.noreply.github.com> Date: Sat, 7 Sep 2024 23:44:17 +0800 Subject: [PATCH 10/12] fix(machine-bindings): rewrite "download_uarch" after `v0.18` update --- .../cartesi-machine-sys/build.rs | 128 +++++++++--------- 1 file changed, 64 insertions(+), 64 deletions(-) diff --git a/machine/rust-bindings/cartesi-machine-sys/build.rs b/machine/rust-bindings/cartesi-machine-sys/build.rs index 038152c6..675e716a 100644 --- a/machine/rust-bindings/cartesi-machine-sys/build.rs +++ b/machine/rust-bindings/cartesi-machine-sys/build.rs @@ -1,7 +1,9 @@ -use std::{env, fs, path::PathBuf, process::Command}; - -use hex_literal::hex; -use sha1::{Digest, Sha1}; +use std::{ + env, fs, + path::Path, + path::PathBuf, + process::{Command, Stdio}, +}; #[cfg(all(feature = "build_uarch", feature = "copy_uarch",))] compile_error!("Features `build_uarch` and `copy_uarch` are mutually exclusive"); @@ -12,20 +14,16 @@ compile_error!("Features `build_uarch` and `download_uarch` are mutually exclusi #[cfg(all(feature = "copy_uarch", feature = "download_uarch"))] compile_error!("Features `copy_uarch`, and `download_uarch` are mutually exclusive"); -#[cfg(not(any(feature = "copy_uarch", feature = "download_uarch")))] +#[cfg(not(any( + feature = "copy_uarch", + feature = "download_uarch", + feature = "build_uarch" +)))] compile_error!("At least one of `build_uarch`, `copy_uarch`, and `download_uarch` must be set"); -const UARCH_PRISTINE_HASH_URL: &str = - "https://github.com/cartesi/machine-emulator/releases/download/v0.17.0/uarch-pristine-hash.c"; -const UARCH_PRISTINE_HASH_CHECKSUM: [u8; 20] = hex!("b20b3b025166c0f3959ee29df3c7b849757f2c5f"); - -const UARCH_PRISTINE_RAM_URL: &str = - "https://github.com/cartesi/machine-emulator/releases/download/v0.17.0/uarch-pristine-ram.c"; -const UARCH_PRISTINE_RAM_CHECKSUM: [u8; 20] = hex!("da3d6390aa4ea098311f11e91ff7f1002f874303"); - use bytes::Bytes; use std::fs::OpenOptions; -use std::io::{self, Write}; +use std::io::{self, Read, Write}; fn main() { let out_path = PathBuf::from(env::var("OUT_DIR").unwrap()); @@ -37,7 +35,6 @@ fn main() { .canonicalize() .expect("cannot canonicalize path"); let libdir_path = machine_dir_path.join("src"); - let uarch_path = machine_dir_path.join("uarch"); // clean build artifacts and start from scratch clean(&machine_dir_path); @@ -50,9 +47,10 @@ fn main() { if #[cfg(feature = "build_uarch")] { () } else if #[cfg(feature = "copy_uarch")] { + let uarch_path = machine_dir_path.join("uarch"); copy_uarch(&uarch_path) } else if #[cfg(feature = "download_uarch")] { - download_uarch(&uarch_path); + download_uarch(&machine_dir_path); } else { panic!("Internal error, no way specified to get uarch"); } @@ -64,10 +62,10 @@ fn main() { // build dependencies Command::new("make") - .args(&["submodules", "downloads", "dep"]) + .args(&["submodules"]) .current_dir(&machine_dir_path) .status() - .expect("Failed to run setup `make submodules downloads dep`"); + .expect("Failed to run setup `make submodules`"); Command::new("make") .args(&["bundle-boost"]) .current_dir(&machine_dir_path) @@ -176,60 +174,62 @@ fn copy_uarch(uarch_path: &PathBuf) { } #[cfg(feature = "download_uarch")] -fn download_uarch(uarch_path: &PathBuf) { - // - // Download `uarch-pristine-hash.c` - // +fn download_uarch(machine_dir_path: &PathBuf) { + // apply git patche for 0.18.1 + let patch_file = machine_dir_path.join("add-generated-files.diff"); - // get - let data = reqwest::blocking::get(UARCH_PRISTINE_HASH_URL) - .expect("error downloading uarch hash") - .bytes() - .expect("error getting uarch hash request body"); - - // checksum - let mut hasher = Sha1::new(); - hasher.update(&data); - let result = hasher.finalize(); - assert_eq!( - result[..], - UARCH_PRISTINE_HASH_CHECKSUM, - "uarch pristine hash checksum failed" - ); + download_git_patch(&patch_file, "v0.18.1"); + apply_git_patch(&patch_file, machine_dir_path); +} - // write to file - write_bytes_to_file( - uarch_path.join("uarch-pristine-hash.c").to_str().unwrap(), - data, - ) - .expect("failed to write `uarch-pristine-hash.c`"); +fn download_git_patch(patch_file: &PathBuf, target_tag: &str) { + let emulator_git_url = "https://github.com/cartesi/machine-emulator"; - // - // Download `uarch-pristine-ram.c` - // + let patch_url = format!( + "{}/releases/download/{}/add-generated-files.diff", + emulator_git_url, target_tag, + ); // get - let data = reqwest::blocking::get(UARCH_PRISTINE_RAM_URL) - .expect("error downloading uarch ram") + let diff_data = reqwest::blocking::get(patch_url) + .expect("error downloading diff of generated files") .bytes() - .expect("error getting uarch ram request body"); - - // checksum - let mut hasher = Sha1::new(); - hasher.update(&data); - let result = hasher.finalize(); - assert_eq!( - result[..], - UARCH_PRISTINE_RAM_CHECKSUM, - "uarch pristine ram checksum failed" - ); + .expect("error getting diff request body"); // write to file - write_bytes_to_file( - uarch_path.join("uarch-pristine-ram.c").to_str().unwrap(), - data, - ) - .expect("failed to write `uarch-pristine-ram.c`"); + write_bytes_to_file(patch_file.to_str().unwrap(), diff_data) + .expect("failed to write `add-generated-files.diff`"); +} + +fn apply_git_patch(patch_file: &Path, target_dir: &Path) { + // Open the patch file + let mut patch = fs::File::open(patch_file).expect("fail to open patch file"); + + // Create a command to run `patch -Np0` + let mut cmd = Command::new("patch") + .arg("-Np0") + .stdin(Stdio::piped()) + .current_dir(target_dir) + .spawn() + .expect("fail to spawn patch command"); + + // Write the contents of the patch file to the command's stdin + if let Some(ref mut stdin) = cmd.stdin { + let mut buffer = Vec::new(); + patch + .read_to_end(&mut buffer) + .expect("fail to read patch content"); + stdin + .write_all(&buffer) + .expect("fail to write patch to pipe"); + } + + // Wait for the command to complete + let status = cmd.wait().expect("fail to wait for patch command"); + + if !status.success() { + eprintln!("Patch command failed with status: {:?}", status); + } } fn write_bytes_to_file(path: &str, data: Bytes) -> io::Result<()> { From c0694b8cf697d219150e7647b2053214fe2cafa3 Mon Sep 17 00:00:00 2001 From: Stephen Chen <20940639+stephenctw@users.noreply.github.com> Date: Sun, 8 Sep 2024 00:30:56 +0800 Subject: [PATCH 11/12] feat: update `rollups-contract` --- cartesi-rollups/node/Cargo.toml | 2 +- .../node/blockchain-reader/src/lib.rs | 19 ++++++++++++++----- cartesi-rollups/node/dave-rollups/src/lib.rs | 9 +++------ 3 files changed, 18 insertions(+), 12 deletions(-) diff --git a/cartesi-rollups/node/Cargo.toml b/cartesi-rollups/node/Cargo.toml index 46777432..b852f168 100644 --- a/cartesi-rollups/node/Cargo.toml +++ b/cartesi-rollups/node/Cargo.toml @@ -40,7 +40,7 @@ alloy = { version = "0.3.1", features = ["sol-types", "contract", "network", "re anyhow = "1.0" async-recursion = "1" async-trait = "0.1.74" -cartesi-rollups-contracts = "2.0.0-rc.8" +cartesi-rollups-contracts = "2.0.0-rc.9" clap = { version = "4.5.7", features = ["derive", "env"] } clap_derive = "=4.5.13" futures = "0.3" diff --git a/cartesi-rollups/node/blockchain-reader/src/lib.rs b/cartesi-rollups/node/blockchain-reader/src/lib.rs index 6d5e05e5..12a07492 100644 --- a/cartesi-rollups/node/blockchain-reader/src/lib.rs +++ b/cartesi-rollups/node/blockchain-reader/src/lib.rs @@ -229,7 +229,7 @@ where epoch_number: u64, epoch_boundary: u64, next_input_index_in_epoch: &mut u64, - input_events_iter: &mut impl Iterator, + input_events_iter: &mut impl Iterator, ) -> Vec { let mut inputs = vec![]; @@ -276,7 +276,7 @@ impl EventReader { prev_finalized: u64, current_finalized: u64, provider: &PartitionProvider, - ) -> std::result::Result)>, ProviderErrors> { + ) -> std::result::Result, ProviderErrors> { assert!(current_finalized > prev_finalized); let logs = provider @@ -313,7 +313,7 @@ impl PartitionProvider { read_from: &Address, start_block: u64, end_block: u64, - ) -> std::result::Result)>, Vec> { + ) -> std::result::Result, Vec> { self.get_events_rec(topic1, read_from, start_block, end_block) .await } @@ -325,7 +325,7 @@ impl PartitionProvider { read_from: &Address, start_block: u64, end_block: u64, - ) -> std::result::Result)>, Vec> { + ) -> std::result::Result, Vec> { // TODO: partition log queries if range too large let event = { let mut e = Event::new_sol(&self.inner, read_from) @@ -342,7 +342,16 @@ impl PartitionProvider { match event.query().await { Ok(l) => { - let logs = l.into_iter().map(|x| (x.0, x.1.block_number)).collect(); + let logs = l + .into_iter() + .map(|x| { + ( + x.0, + x.1.block_number + .expect("fail to get block number from event"), + ) + }) + .collect(); Ok(logs) } diff --git a/cartesi-rollups/node/dave-rollups/src/lib.rs b/cartesi-rollups/node/dave-rollups/src/lib.rs index 86cdbba1..08bb2932 100644 --- a/cartesi-rollups/node/dave-rollups/src/lib.rs +++ b/cartesi-rollups/node/dave-rollups/src/lib.rs @@ -1,15 +1,12 @@ -use alloy::primitives::Address; use cartesi_prt_core::arena::BlockchainConfig; use clap::Parser; -use dave_runner::DaveRunner; use log::error; use rollups_blockchain_reader::{AddressBook, BlockchainReader}; use rollups_compute_runner::ComputeRunner; use rollups_epoch_manager::EpochManager; use rollups_machine_runner::MachineRunner; use rollups_state_manager::persistent_state_access::PersistentStateAccess; -use rusqlite::config; use std::sync::Arc; use tokio::task::JoinHandle; use tokio::task::{spawn, spawn_blocking}; @@ -45,7 +42,7 @@ pub fn create_blockchain_reader_task( let mut blockchain_reader = BlockchainReader::new( state_manager, params.address_book, - params.web3_rpc_url.as_str(), + params.blockchain_config.web3_rpc_url.as_str(), params.sleep_duration, ) .inspect_err(|e| error!("{e}")) @@ -88,8 +85,8 @@ pub fn create_epoch_manager_task( let params = parameters.clone(); spawn(async move { - let mut epoch_manager = EpochManager::new( - ¶meters.blockchain_config, + let epoch_manager = EpochManager::new( + ¶ms.blockchain_config, params.address_book.consensus, state_manager, params.sleep_duration, From b9be363adad822b5008ff882a30a46e348432656 Mon Sep 17 00:00:00 2001 From: Stephen Chen <20940639+stephenctw@users.noreply.github.com> Date: Sun, 8 Sep 2024 00:31:29 +0800 Subject: [PATCH 12/12] dep: update `Cargo.lock` --- cartesi-rollups/node/Cargo.lock | 2216 +++------------------ prt/prt-rs/Cargo.lock | 3175 ++++++++++--------------------- 2 files changed, 1286 insertions(+), 4105 deletions(-) diff --git a/cartesi-rollups/node/Cargo.lock b/cartesi-rollups/node/Cargo.lock index bb00bfcf..45bfbd14 100644 --- a/cartesi-rollups/node/Cargo.lock +++ b/cartesi-rollups/node/Cargo.lock @@ -2,16 +2,6 @@ # It is not intended for manual editing. version = 3 -[[package]] -name = "Inflector" -version = "0.11.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" -dependencies = [ - "lazy_static", - "regex", -] - [[package]] name = "addr2line" version = "0.21.0" @@ -27,17 +17,6 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" -[[package]] -name = "aes" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" -dependencies = [ - "cfg-if", - "cipher", - "cpufeatures", -] - [[package]] name = "ahash" version = "0.8.11" @@ -67,9 +46,9 @@ checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" [[package]] name = "alloy" -version = "0.2.1" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f4a4aaae80afd4be443a6aecd92a6b255dcdd000f97996928efb33d8a71e100" +checksum = "0f13f1940c81e269e84ddb58f3b611be9660fbbfe39d4338aa2984dc3df0c402" dependencies = [ "alloy-consensus", "alloy-contract", @@ -98,9 +77,9 @@ dependencies = [ [[package]] name = "alloy-consensus" -version = "0.2.1" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04c309895995eaa4bfcc345f5515a39c7df9447798645cc8bf462b6c5bf1dc96" +checksum = "4177d135789e282e925092be8939d421b701c6d92c0a16679faa659d9166289d" dependencies = [ "alloy-eips", "alloy-primitives", @@ -112,9 +91,9 @@ dependencies = [ [[package]] name = "alloy-contract" -version = "0.2.1" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f4e0ef72b0876ae3068b2ed7dfae9ae1779ce13cfaec2ee1f08f5bd0348dc57" +checksum = "e3be15f92fdb7490b164697a1d9b395cb7a3afa8fb15feed732ec5a6ff8db5f4" dependencies = [ "alloy-dyn-abi", "alloy-json-abi", @@ -132,9 +111,9 @@ dependencies = [ [[package]] name = "alloy-core" -version = "0.7.7" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "529fc6310dc1126c8de51c376cbc59c79c7f662bd742be7dc67055d5421a81b4" +checksum = "4f5aeeac2715738ff43076b65ca27bc0a2025ce0ee69f537c11c632027360bff" dependencies = [ "alloy-dyn-abi", "alloy-json-abi", @@ -144,9 +123,9 @@ dependencies = [ [[package]] name = "alloy-dyn-abi" -version = "0.7.7" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "413902aa18a97569e60f679c23f46a18db1656d87ab4d4e49d0e1e52042f66df" +checksum = "b03f58cfae4d41b624effe1f11624ee40499449174b20a6d6505fd72ef0d547d" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -159,16 +138,41 @@ dependencies = [ "winnow 0.6.8", ] +[[package]] +name = "alloy-eip2930" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0069cf0642457f87a01a014f6dc29d5d893cd4fd8fddf0c3cdfad1bb3ebafc41" +dependencies = [ + "alloy-primitives", + "alloy-rlp", + "serde", +] + +[[package]] +name = "alloy-eip7702" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37d319bb544ca6caeab58c39cea8921c55d924d4f68f2c60f24f914673f9a74a" +dependencies = [ + "alloy-primitives", + "alloy-rlp", + "serde", +] + [[package]] name = "alloy-eips" -version = "0.2.1" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9431c99a3b3fe606ede4b3d4043bdfbcb780c45b8d8d226c3804e2b75cfbe68" +checksum = "499ee14d296a133d142efd215eb36bf96124829fe91cf8f5d4e5ccdd381eae00" dependencies = [ + "alloy-eip2930", + "alloy-eip7702", "alloy-primitives", "alloy-rlp", "alloy-serde", "c-kzg", + "derive_more", "once_cell", "serde", "sha2", @@ -176,9 +180,9 @@ dependencies = [ [[package]] name = "alloy-genesis" -version = "0.2.1" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79614dfe86144328da11098edcc7bc1a3f25ad8d3134a9eb9e857e06f0d9840d" +checksum = "4b85dfc693e4a1193f0372a8f789df12ab51fcbe7be0733baa04939a86dd813b" dependencies = [ "alloy-primitives", "alloy-serde", @@ -187,9 +191,9 @@ dependencies = [ [[package]] name = "alloy-json-abi" -version = "0.7.7" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc05b04ac331a9f07e3a4036ef7926e49a8bf84a99a1ccfc7e2ab55a5fcbb372" +checksum = "a28ecae8b5315daecd0075084eb47f4374b3037777346ca52fc8d9c327693f02" dependencies = [ "alloy-primitives", "alloy-sol-type-parser", @@ -199,9 +203,9 @@ dependencies = [ [[package]] name = "alloy-json-rpc" -version = "0.2.1" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57e2865c4c3bb4cdad3f0d9ec1ab5c0c657ba69a375651bd35e32fb6c180ccc2" +checksum = "4207166c79cfdf7f3bed24bbc84f5c7c5d4db1970f8c82e3fcc76257f16d2166" dependencies = [ "alloy-primitives", "alloy-sol-types", @@ -213,9 +217,9 @@ dependencies = [ [[package]] name = "alloy-network" -version = "0.2.1" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e701fc87ef9a3139154b0b4ccb935b565d27ffd9de020fe541bf2dec5ae4ede" +checksum = "dfbe2802d5b8c632f18d68c352073378f02a3407c1b6a4487194e7d21ab0f002" dependencies = [ "alloy-consensus", "alloy-eips", @@ -234,9 +238,9 @@ dependencies = [ [[package]] name = "alloy-network-primitives" -version = "0.2.1" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec9d5a0f9170b10988b6774498a022845e13eda94318440d17709d50687f67f9" +checksum = "396c07726030fa0f9dab5da8c71ccd69d5eb74a7fe1072b7ae453a67e4fe553e" dependencies = [ "alloy-primitives", "alloy-serde", @@ -245,9 +249,9 @@ dependencies = [ [[package]] name = "alloy-primitives" -version = "0.7.7" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccb3ead547f4532bc8af961649942f0b9c16ee9226e26caa3f38420651cc0bf4" +checksum = "ccb865df835f851b367ae439d6c82b117ded971628c8888b24fed411a290e38a" dependencies = [ "alloy-rlp", "bytes", @@ -267,9 +271,9 @@ dependencies = [ [[package]] name = "alloy-provider" -version = "0.2.1" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9c0ab10b93de601a6396fc7ff2ea10d3b28c46f079338fa562107ebf9857c8" +checksum = "1376948df782ffee83a54cac4b2aba14134edd997229a3db97da0a606586eb5c" dependencies = [ "alloy-chains", "alloy-consensus", @@ -290,9 +294,10 @@ dependencies = [ "futures-utils-wasm", "lru", "pin-project", - "reqwest 0.12.4", + "reqwest", "serde", "serde_json", + "thiserror", "tokio", "tracing", "url", @@ -322,16 +327,16 @@ dependencies = [ [[package]] name = "alloy-rpc-client" -version = "0.2.1" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b38e3ffdb285df5d9f60cb988d336d9b8e3505acb78750c3bc60336a7af41d3" +checksum = "02378418a429f8a14a0ad8ffaa15b2d25ff34914fc4a1e366513c6a3800e03b3" dependencies = [ "alloy-json-rpc", "alloy-transport", "alloy-transport-http", "futures", "pin-project", - "reqwest 0.12.4", + "reqwest", "serde", "serde_json", "tokio", @@ -343,9 +348,9 @@ dependencies = [ [[package]] name = "alloy-rpc-types-eth" -version = "0.2.1" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81e18424d962d7700a882fe423714bd5b9dde74c7a7589d4255ea64068773aef" +checksum = "15bb3506ab1cf415d4752778c93e102050399fb8de97b7da405a5bf3e31f5f3b" dependencies = [ "alloy-consensus", "alloy-eips", @@ -362,9 +367,9 @@ dependencies = [ [[package]] name = "alloy-serde" -version = "0.2.1" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e33feda6a53e6079895aed1d08dcb98a1377b000d80d16370fbbdb8155d547ef" +checksum = "ae417978015f573b4a8c02af17f88558fb22e3fccd12e8a910cf6a2ff331cfcb" dependencies = [ "alloy-primitives", "serde", @@ -373,9 +378,9 @@ dependencies = [ [[package]] name = "alloy-signer" -version = "0.2.1" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "740a25b92e849ed7b0fa013951fe2f64be9af1ad5abe805037b44fb7770c5c47" +checksum = "b750c9b61ac0646f8f4a61231c2732a337b2c829866fc9a191b96b7eedf80ffe" dependencies = [ "alloy-primitives", "async-trait", @@ -387,9 +392,9 @@ dependencies = [ [[package]] name = "alloy-signer-local" -version = "0.2.1" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b0707d4f63e4356a110b30ef3add8732ab6d181dd7be4607bf79b8777105cee" +checksum = "7c640f9343e8f741f837c345c5ea30239ba77938b3691b884c736834853bd16c" dependencies = [ "alloy-consensus", "alloy-network", @@ -403,13 +408,13 @@ dependencies = [ [[package]] name = "alloy-sol-macro" -version = "0.7.7" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b40397ddcdcc266f59f959770f601ce1280e699a91fc1862f29cef91707cd09" +checksum = "e2dc5201ca0018afb7a3e0cd8bd15f7ca6aca924333b5f3bb87463b41d0c4ef2" dependencies = [ "alloy-sol-macro-expander", "alloy-sol-macro-input", - "proc-macro-error", + "proc-macro-error2", "proc-macro2", "quote", "syn 2.0.66", @@ -417,16 +422,16 @@ dependencies = [ [[package]] name = "alloy-sol-macro-expander" -version = "0.7.7" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "867a5469d61480fea08c7333ffeca52d5b621f5ca2e44f271b117ec1fc9a0525" +checksum = "155f63dc6945885aa4532601800201fddfaa3b20901fda8e8c2570327242fe0e" dependencies = [ "alloy-json-abi", "alloy-sol-macro-input", "const-hex", "heck 0.5.0", "indexmap", - "proc-macro-error", + "proc-macro-error2", "proc-macro2", "quote", "syn 2.0.66", @@ -436,9 +441,9 @@ dependencies = [ [[package]] name = "alloy-sol-macro-input" -version = "0.7.7" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e482dc33a32b6fadbc0f599adea520bd3aaa585c141a80b404d0a3e3fa72528" +checksum = "847700aa9cb59d3c7b290b2d05976cd8d76b64d73bb63116a9533132d995586b" dependencies = [ "alloy-json-abi", "const-hex", @@ -453,9 +458,9 @@ dependencies = [ [[package]] name = "alloy-sol-type-parser" -version = "0.7.7" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbcba3ca07cf7975f15d871b721fb18031eec8bce51103907f6dcce00b255d98" +checksum = "3a6b5d462d4520bd9ed70d8364c6280aeff13baa46ea26be1ddd33538dbbe6ac" dependencies = [ "serde", "winnow 0.6.8", @@ -463,9 +468,9 @@ dependencies = [ [[package]] name = "alloy-sol-types" -version = "0.7.7" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a91ca40fa20793ae9c3841b83e74569d1cc9af29a2f5237314fd3452d51e38c7" +checksum = "83665e5607725a7a1aab3cb0dea708f4a05e70776954ec7f0a9461439175c957" dependencies = [ "alloy-json-abi", "alloy-primitives", @@ -476,12 +481,12 @@ dependencies = [ [[package]] name = "alloy-transport" -version = "0.2.1" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d0590afbdacf2f8cca49d025a2466f3b6584a016a8b28f532f29f8da1007bae" +checksum = "2799749ca692ae145f54968778877afd7c95e788488f176cfdfcf2a8abeb2062" dependencies = [ "alloy-json-rpc", - "base64 0.22.1", + "base64", "futures-util", "futures-utils-wasm", "serde", @@ -495,13 +500,13 @@ dependencies = [ [[package]] name = "alloy-transport-http" -version = "0.2.1" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2437d145d80ea1aecde8574d2058cceb8b3c9cba05f6aea8e67907c660d46698" +checksum = "bc10c4dd932f66e0db6cc5735241e0c17a6a18564b430bbc1839f7db18587a93" dependencies = [ "alloy-json-rpc", "alloy-transport", - "reqwest 0.12.4", + "reqwest", "serde_json", "tower", "tracing", @@ -693,15 +698,6 @@ version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" -[[package]] -name = "ascii-canvas" -version = "3.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8824ecca2e851cec16968d54a01dd372ef8f95b244fb84b84e70128be347c3c6" -dependencies = [ - "term", -] - [[package]] name = "async-recursion" version = "1.1.1" @@ -746,23 +742,6 @@ dependencies = [ "syn 2.0.66", ] -[[package]] -name = "async_io_stream" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6d7b9decdf35d8908a7e3ef02f64c5e9b1695e230154c0e8de3969142d9b94c" -dependencies = [ - "futures", - "pharos", - "rustc_version 0.4.0", -] - -[[package]] -name = "atomic-waker" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" - [[package]] name = "auto_impl" version = "1.2.0" @@ -801,18 +780,6 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" -[[package]] -name = "base64" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" - -[[package]] -name = "base64" -version = "0.21.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" - [[package]] name = "base64" version = "0.22.1" @@ -825,19 +792,13 @@ version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" -[[package]] -name = "bech32" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445" - [[package]] name = "bindgen" version = "0.69.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a00dc851838a2120612785d195287475a3ac45514741da670b735818822129a0" dependencies = [ - "bitflags 2.5.0", + "bitflags", "cexpr", "clang-sys", "itertools 0.12.1", @@ -869,12 +830,6 @@ version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - [[package]] name = "bitflags" version = "2.5.0" @@ -914,16 +869,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "bs58" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" -dependencies = [ - "sha2", - "tinyvec", -] - [[package]] name = "bumpalo" version = "3.16.0" @@ -951,27 +896,6 @@ dependencies = [ "serde", ] -[[package]] -name = "bzip2" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8" -dependencies = [ - "bzip2-sys", - "libc", -] - -[[package]] -name = "bzip2-sys" -version = "0.1.11+1.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc" -dependencies = [ - "cc", - "libc", - "pkg-config", -] - [[package]] name = "c-kzg" version = "1.0.2" @@ -987,41 +911,16 @@ dependencies = [ ] [[package]] -name = "camino" -version = "1.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0ec6b951b160caa93cc0c7b209e5a3bff7aae9062213451ac99493cd844c239" -dependencies = [ - "serde", -] - -[[package]] -name = "cargo-platform" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24b1f0365a6c6bb4020cd05806fd0d33c44d38046b8bd7f0e40814b9763cabfc" -dependencies = [ - "serde", -] +name = "cartesi-dave-arithmetic" +version = "0.1.0" [[package]] -name = "cargo_metadata" -version = "0.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037" +name = "cartesi-dave-contracts" +version = "0.1.0" dependencies = [ - "camino", - "cargo-platform", - "semver 1.0.23", - "serde", - "serde_json", - "thiserror", + "alloy", ] -[[package]] -name = "cartesi-dave-arithmetic" -version = "0.1.0" - [[package]] name = "cartesi-dave-merkle" version = "0.1.0" @@ -1035,7 +934,7 @@ dependencies = [ [[package]] name = "cartesi-machine" -version = "0.17.0" +version = "0.18.1" dependencies = [ "cartesi-machine-sys", "hex", @@ -1044,23 +943,35 @@ dependencies = [ [[package]] name = "cartesi-machine-sys" -version = "0.17.0" +version = "0.18.1" dependencies = [ "bindgen", "bytes", "cfg-if", "hex-literal", "link-cplusplus", - "reqwest 0.12.4", + "reqwest", "sha1", ] +[[package]] +name = "cartesi-prt-compute" +version = "0.1.0" +dependencies = [ + "alloy", + "anyhow", + "cartesi-prt-core", + "clap", + "env_logger", + "log", + "tokio", +] + [[package]] name = "cartesi-prt-contracts" version = "0.1.0" dependencies = [ "alloy", - "serde", ] [[package]] @@ -1087,12 +998,11 @@ dependencies = [ [[package]] name = "cartesi-rollups-contracts" -version = "2.0.0-rc.3" +version = "2.0.0-rc.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebba9744e384a679adce12d78e7150f374ce38ee0b590018a4d5be973c6edf9d" +checksum = "b11ea82d7e8deedbb22c303837f24c19ca6c058b6ee7f9a27db989607bcc5f42" dependencies = [ - "ethers", - "serde", + "alloy", ] [[package]] @@ -1100,11 +1010,6 @@ name = "cc" version = "1.0.98" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41c270e7540d725e65ac7f1b212ac8ce349719624d7bcff99f8e2e488e8cf03f" -dependencies = [ - "jobserver", - "libc", - "once_cell", -] [[package]] name = "cexpr" @@ -1121,25 +1026,6 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" -[[package]] -name = "chrono" -version = "0.4.38" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" -dependencies = [ - "num-traits", -] - -[[package]] -name = "cipher" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" -dependencies = [ - "crypto-common", - "inout", -] - [[package]] name = "clang-sys" version = "1.7.0" @@ -1153,9 +1039,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.7" +version = "4.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5db83dced34638ad474f39f250d7fea9598bdd239eaced1bdf45d597da0f433f" +checksum = "0fbb260a053428790f3de475e304ff84cdbc4face759ea7a3e64c1edd938a7fc" dependencies = [ "clap_builder", "clap_derive", @@ -1163,9 +1049,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.7" +version = "4.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7e204572485eb3fbf28f871612191521df159bc3e15a9f5064c66dba3a8c05f" +checksum = "64b17d7ea74e9f833c7dbf2cbe4fb12ff26783eda4782a8975b72f895c9b4d99" dependencies = [ "anstream", "anstyle", @@ -1175,9 +1061,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.5" +version = "4.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c780290ccf4fb26629baa7a1081e68ced113f1d3ec302fa5948f1c381ebf06c6" +checksum = "501d359d5f3dcaf6ecdeee48833ae73ec6e42723a1e52419c79abf9507eec0a0" dependencies = [ "heck 0.5.0", "proc-macro2", @@ -1191,58 +1077,6 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4b82cf0babdbd58558212896d1a4272303a57bdb245c2bf1147185fb45640e70" -[[package]] -name = "coins-bip32" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b6be4a5df2098cd811f3194f64ddb96c267606bffd9689ac7b0160097b01ad3" -dependencies = [ - "bs58", - "coins-core", - "digest 0.10.7", - "hmac", - "k256", - "serde", - "sha2", - "thiserror", -] - -[[package]] -name = "coins-bip39" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3db8fba409ce3dc04f7d804074039eb68b960b0829161f8e06c95fea3f122528" -dependencies = [ - "bitvec", - "coins-bip32", - "hmac", - "once_cell", - "pbkdf2 0.12.2", - "rand", - "sha2", - "thiserror", -] - -[[package]] -name = "coins-core" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5286a0843c21f8367f7be734f89df9b822e0321d8bcce8d6e735aadff7d74979" -dependencies = [ - "base64 0.21.7", - "bech32", - "bs58", - "digest 0.10.7", - "generic-array", - "hex", - "ripemd", - "serde", - "serde_derive", - "sha2", - "sha3", - "thiserror", -] - [[package]] name = "colorchoice" version = "1.0.1" @@ -1268,18 +1102,6 @@ version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" -[[package]] -name = "constant_time_eq" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" - -[[package]] -name = "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" @@ -1305,34 +1127,6 @@ dependencies = [ "libc", ] -[[package]] -name = "crc32fast" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "crossbeam-deque" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" -dependencies = [ - "crossbeam-epoch", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-epoch" -version = "0.9.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" -dependencies = [ - "crossbeam-utils", -] - [[package]] name = "crossbeam-utils" version = "0.8.20" @@ -1367,47 +1161,36 @@ dependencies = [ "typenum", ] -[[package]] -name = "ctr" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" -dependencies = [ - "cipher", -] - [[package]] name = "dashmap" -version = "5.5.3" +version = "6.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" +checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf" dependencies = [ "cfg-if", + "crossbeam-utils", "hashbrown", "lock_api", "once_cell", "parking_lot_core", ] -[[package]] -name = "data-encoding" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" - [[package]] name = "dave-rollups" version = "0.1.0" dependencies = [ + "alloy", "anyhow", + "cartesi-prt-compute", + "cartesi-prt-core", "cartesi-rollups-contracts", "clap", "clap_derive", "env_logger", - "ethers", "futures", "log", "rollups-blockchain-reader", + "rollups-compute-runner", "rollups-epoch-manager", "rollups-machine-runner", "rollups-state-manager", @@ -1425,15 +1208,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "deranged" -version = "0.3.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" -dependencies = [ - "powerfmt", -] - [[package]] name = "derivative" version = "2.2.0" @@ -1447,15 +1221,23 @@ dependencies = [ [[package]] name = "derive_more" -version = "0.99.17" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05" +dependencies = [ + "derive_more-impl", +] + +[[package]] +name = "derive_more-impl" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" +checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" dependencies = [ - "convert_case", "proc-macro2", "quote", - "rustc_version 0.4.0", - "syn 1.0.109", + "syn 2.0.66", + "unicode-xid", ] [[package]] @@ -1479,48 +1261,6 @@ dependencies = [ "subtle", ] -[[package]] -name = "dirs" -version = "5.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" -dependencies = [ - "dirs-sys", -] - -[[package]] -name = "dirs-next" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" -dependencies = [ - "cfg-if", - "dirs-sys-next", -] - -[[package]] -name = "dirs-sys" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" -dependencies = [ - "libc", - "option-ext", - "redox_users", - "windows-sys 0.48.0", -] - -[[package]] -name = "dirs-sys-next" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" -dependencies = [ - "libc", - "redox_users", - "winapi", -] - [[package]] name = "dunce" version = "1.0.4" @@ -1567,52 +1307,26 @@ dependencies = [ ] [[package]] -name = "ena" -version = "0.14.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d248bdd43ce613d87415282f69b9bb99d947d290b10962dd6c56233312c2ad5" -dependencies = [ - "log", -] - -[[package]] -name = "encoding_rs" -version = "0.8.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "enr" -version = "0.10.0" +name = "env_filter" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a3d8dc56e02f954cac8eb489772c552c473346fc34f67412bb6244fd647f7e4" +checksum = "4f2c92ceda6ceec50f43169f9ee8424fe2db276791afde7b2cd8bc084cb376ab" dependencies = [ - "base64 0.21.7", - "bytes", - "hex", - "k256", "log", - "rand", - "rlp", - "serde", - "sha3", - "zeroize", + "regex", ] [[package]] name = "env_logger" -version = "0.10.2" +version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580" +checksum = "e13fa619b91fb2381732789fc5de83b45675e882f66623b7d8cb4f643017018d" dependencies = [ + "anstream", + "anstyle", + "env_filter", "humantime", - "is-terminal", "log", - "regex", - "termcolor", ] [[package]] @@ -1631,334 +1345,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "eth-keystore" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fda3bf123be441da5260717e0661c25a2fd9cb2b2c1d20bf2e05580047158ab" -dependencies = [ - "aes", - "ctr", - "digest 0.10.7", - "hex", - "hmac", - "pbkdf2 0.11.0", - "rand", - "scrypt", - "serde", - "serde_json", - "sha2", - "sha3", - "thiserror", - "uuid", -] - -[[package]] -name = "ethabi" -version = "18.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7413c5f74cc903ea37386a8965a936cbeb334bd270862fdece542c1b2dcbc898" -dependencies = [ - "ethereum-types", - "hex", - "once_cell", - "regex", - "serde", - "serde_json", - "sha3", - "thiserror", - "uint", -] - -[[package]] -name = "ethbloom" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c22d4b5885b6aa2fe5e8b9329fb8d232bf739e434e6b87347c63bdd00c120f60" -dependencies = [ - "crunchy", - "fixed-hash", - "impl-codec", - "impl-rlp", - "impl-serde", - "scale-info", - "tiny-keccak", -] - -[[package]] -name = "ethereum-types" -version = "0.14.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02d215cbf040552efcbe99a38372fe80ab9d00268e20012b79fcd0f073edd8ee" -dependencies = [ - "ethbloom", - "fixed-hash", - "impl-codec", - "impl-rlp", - "impl-serde", - "primitive-types", - "scale-info", - "uint", -] - -[[package]] -name = "ethers" -version = "2.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "816841ea989f0c69e459af1cf23a6b0033b19a55424a1ea3a30099becdb8dec0" -dependencies = [ - "ethers-addressbook", - "ethers-contract", - "ethers-core", - "ethers-etherscan", - "ethers-middleware", - "ethers-providers", - "ethers-signers", - "ethers-solc", -] - -[[package]] -name = "ethers-addressbook" -version = "2.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5495afd16b4faa556c3bba1f21b98b4983e53c1755022377051a975c3b021759" -dependencies = [ - "ethers-core", - "once_cell", - "serde", - "serde_json", -] - -[[package]] -name = "ethers-contract" -version = "2.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fceafa3578c836eeb874af87abacfb041f92b4da0a78a5edd042564b8ecdaaa" -dependencies = [ - "const-hex", - "ethers-contract-abigen", - "ethers-contract-derive", - "ethers-core", - "ethers-providers", - "futures-util", - "once_cell", - "pin-project", - "serde", - "serde_json", - "thiserror", -] - -[[package]] -name = "ethers-contract-abigen" -version = "2.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04ba01fbc2331a38c429eb95d4a570166781f14290ef9fdb144278a90b5a739b" -dependencies = [ - "Inflector", - "const-hex", - "dunce", - "ethers-core", - "ethers-etherscan", - "eyre", - "prettyplease", - "proc-macro2", - "quote", - "regex", - "reqwest 0.11.27", - "serde", - "serde_json", - "syn 2.0.66", - "toml", - "walkdir", -] - -[[package]] -name = "ethers-contract-derive" -version = "2.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87689dcabc0051cde10caaade298f9e9093d65f6125c14575db3fd8c669a168f" -dependencies = [ - "Inflector", - "const-hex", - "ethers-contract-abigen", - "ethers-core", - "proc-macro2", - "quote", - "serde_json", - "syn 2.0.66", -] - -[[package]] -name = "ethers-core" -version = "2.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82d80cc6ad30b14a48ab786523af33b37f28a8623fc06afd55324816ef18fb1f" -dependencies = [ - "arrayvec", - "bytes", - "cargo_metadata", - "chrono", - "const-hex", - "elliptic-curve", - "ethabi", - "generic-array", - "k256", - "num_enum", - "once_cell", - "open-fastrlp", - "rand", - "rlp", - "serde", - "serde_json", - "strum", - "syn 2.0.66", - "tempfile", - "thiserror", - "tiny-keccak", - "unicode-xid", -] - -[[package]] -name = "ethers-etherscan" -version = "2.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e79e5973c26d4baf0ce55520bd732314328cabe53193286671b47144145b9649" -dependencies = [ - "chrono", - "ethers-core", - "reqwest 0.11.27", - "semver 1.0.23", - "serde", - "serde_json", - "thiserror", - "tracing", -] - -[[package]] -name = "ethers-middleware" -version = "2.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48f9fdf09aec667c099909d91908d5eaf9be1bd0e2500ba4172c1d28bfaa43de" -dependencies = [ - "async-trait", - "auto_impl", - "ethers-contract", - "ethers-core", - "ethers-etherscan", - "ethers-providers", - "ethers-signers", - "futures-channel", - "futures-locks", - "futures-util", - "instant", - "reqwest 0.11.27", - "serde", - "serde_json", - "thiserror", - "tokio", - "tracing", - "tracing-futures", - "url", -] - -[[package]] -name = "ethers-providers" -version = "2.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6434c9a33891f1effc9c75472e12666db2fa5a0fec4b29af6221680a6fe83ab2" -dependencies = [ - "async-trait", - "auto_impl", - "base64 0.21.7", - "bytes", - "const-hex", - "enr", - "ethers-core", - "futures-core", - "futures-timer", - "futures-util", - "hashers", - "http 0.2.12", - "instant", - "jsonwebtoken", - "once_cell", - "pin-project", - "reqwest 0.11.27", - "serde", - "serde_json", - "thiserror", - "tokio", - "tokio-tungstenite", - "tracing", - "tracing-futures", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "ws_stream_wasm", -] - -[[package]] -name = "ethers-signers" -version = "2.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "228875491c782ad851773b652dd8ecac62cda8571d3bc32a5853644dd26766c2" -dependencies = [ - "async-trait", - "coins-bip32", - "coins-bip39", - "const-hex", - "elliptic-curve", - "eth-keystore", - "ethers-core", - "rand", - "sha2", - "thiserror", - "tracing", -] - -[[package]] -name = "ethers-solc" -version = "2.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66244a771d9163282646dbeffe0e6eca4dda4146b6498644e678ac6089b11edd" -dependencies = [ - "cfg-if", - "const-hex", - "dirs", - "dunce", - "ethers-core", - "glob", - "home", - "md-5", - "num_cpus", - "once_cell", - "path-slash", - "rayon", - "regex", - "semver 1.0.23", - "serde", - "serde_json", - "solang-parser", - "svm-rs", - "thiserror", - "tiny-keccak", - "tokio", - "tracing", - "walkdir", - "yansi", -] - -[[package]] -name = "eyre" -version = "0.6.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cd915d99f24784cdc19fd37ef22b97e3ff0ae756c7e492e9fbfe897d61e2aec" -dependencies = [ - "indenter", - "once_cell", -] - [[package]] name = "fallible-iterator" version = "0.3.0" @@ -2010,22 +1396,6 @@ dependencies = [ "static_assertions", ] -[[package]] -name = "fixedbitset" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" - -[[package]] -name = "flate2" -version = "1.0.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae" -dependencies = [ - "crc32fast", - "miniz_oxide", -] - [[package]] name = "fnv" version = "1.0.7" @@ -2056,16 +1426,6 @@ dependencies = [ "percent-encoding", ] -[[package]] -name = "fs2" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213" -dependencies = [ - "libc", - "winapi", -] - [[package]] name = "funty" version = "2.0.0" @@ -2120,16 +1480,6 @@ version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" -[[package]] -name = "futures-locks" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45ec6fe3675af967e67c5536c0b9d44e34e6c52f86bedc4ea49c5317b8e94d06" -dependencies = [ - "futures-channel", - "futures-task", -] - [[package]] name = "futures-macro" version = "0.3.30" @@ -2153,16 +1503,6 @@ version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" -[[package]] -name = "futures-timer" -version = "3.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" -dependencies = [ - "gloo-timers", - "send_wrapper 0.4.0", -] - [[package]] name = "futures-util" version = "0.3.30" @@ -2187,15 +1527,6 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42012b0f064e01aa58b545fe3727f90f7dd4020f4a3ea735b50344965f5a57e9" -[[package]] -name = "fxhash" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" -dependencies = [ - "byteorder", -] - [[package]] name = "generic-array" version = "0.14.7" @@ -2230,18 +1561,6 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" -[[package]] -name = "gloo-timers" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c" -dependencies = [ - "futures-channel", - "futures-core", - "js-sys", - "wasm-bindgen", -] - [[package]] name = "group" version = "0.13.0" @@ -2253,44 +1572,6 @@ dependencies = [ "subtle", ] -[[package]] -name = "h2" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" -dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http 0.2.12", - "indexmap", - "slab", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "h2" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa82e28a107a8cc405f0839610bdc9b15f1e25ec7d696aa5cf173edbcb1486ab" -dependencies = [ - "atomic-waker", - "bytes", - "fnv", - "futures-core", - "futures-sink", - "http 1.1.0", - "indexmap", - "slab", - "tokio", - "tokio-util", - "tracing", -] - [[package]] name = "hashbrown" version = "0.14.5" @@ -2301,15 +1582,6 @@ dependencies = [ "allocator-api2", ] -[[package]] -name = "hashers" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2bca93b15ea5a746f220e56587f71e73c6165eab783df9e26590069953e3c30" -dependencies = [ - "fxhash", -] - [[package]] name = "hashlink" version = "0.9.1" @@ -2370,17 +1642,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "http" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - [[package]] name = "http" version = "1.1.0" @@ -2392,17 +1653,6 @@ dependencies = [ "itoa", ] -[[package]] -name = "http-body" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" -dependencies = [ - "bytes", - "http 0.2.12", - "pin-project-lite", -] - [[package]] name = "http-body" version = "1.0.0" @@ -2410,7 +1660,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643" dependencies = [ "bytes", - "http 1.1.0", + "http", ] [[package]] @@ -2421,8 +1671,8 @@ checksum = "0475f8b2ac86659c21b64320d5d653f9efe42acd2a4e560073ec61a155a34f1d" dependencies = [ "bytes", "futures-core", - "http 1.1.0", - "http-body 1.0.0", + "http", + "http-body", "pin-project-lite", ] @@ -2430,13 +1680,7 @@ dependencies = [ name = "httparse" version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" - -[[package]] -name = "httpdate" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" +checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" [[package]] name = "humantime" @@ -2444,30 +1688,6 @@ version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" -[[package]] -name = "hyper" -version = "0.14.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80" -dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "h2 0.3.26", - "http 0.2.12", - "http-body 0.4.6", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "socket2", - "tokio", - "tower-service", - "tracing", - "want", -] - [[package]] name = "hyper" version = "1.3.1" @@ -2477,9 +1697,8 @@ dependencies = [ "bytes", "futures-channel", "futures-util", - "h2 0.4.5", - "http 1.1.0", - "http-body 1.0.0", + "http", + "http-body", "httparse", "itoa", "pin-project-lite", @@ -2490,16 +1709,19 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.24.2" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" +checksum = "a0bea761b46ae2b24eb4aef630d8d1c398157b6fc29e6350ecf090a0b70c952c" dependencies = [ "futures-util", - "http 0.2.12", - "hyper 0.14.28", + "http", + "hyper", + "hyper-util", "rustls", + "rustls-pki-types", "tokio", "tokio-rustls", + "tower-service", ] [[package]] @@ -2510,7 +1732,7 @@ checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" dependencies = [ "bytes", "http-body-util", - "hyper 1.3.1", + "hyper", "hyper-util", "native-tls", "tokio", @@ -2527,9 +1749,9 @@ dependencies = [ "bytes", "futures-channel", "futures-util", - "http 1.1.0", - "http-body 1.0.0", - "hyper 1.3.1", + "http", + "http-body", + "hyper", "pin-project-lite", "socket2", "tokio", @@ -2557,24 +1779,6 @@ dependencies = [ "parity-scale-codec", ] -[[package]] -name = "impl-rlp" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f28220f89297a075ddc7245cd538076ee98b01f2a9c23a53a4f1105d5a322808" -dependencies = [ - "rlp", -] - -[[package]] -name = "impl-serde" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc88fc67028ae3db0c853baa36269d398d5f45b6982f95549ff5def78c935cd" -dependencies = [ - "serde", -] - [[package]] name = "impl-trait-for-tuples" version = "0.2.2" @@ -2586,12 +1790,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "indenter" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" - [[package]] name = "indexmap" version = "2.2.6" @@ -2602,41 +1800,12 @@ dependencies = [ "hashbrown", ] -[[package]] -name = "inout" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" -dependencies = [ - "generic-array", -] - -[[package]] -name = "instant" -version = "0.1.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" -dependencies = [ - "cfg-if", -] - [[package]] name = "ipnet" version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" -[[package]] -name = "is-terminal" -version = "0.4.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b" -dependencies = [ - "hermit-abi", - "libc", - "windows-sys 0.52.0", -] - [[package]] name = "is_terminal_polyfill" version = "1.70.0" @@ -2652,15 +1821,6 @@ dependencies = [ "either", ] -[[package]] -name = "itertools" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" -dependencies = [ - "either", -] - [[package]] name = "itertools" version = "0.12.1" @@ -2685,15 +1845,6 @@ version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" -[[package]] -name = "jobserver" -version = "0.1.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2b099aaa34a9751c5bf0878add70444e1ed2dd73f347be99003d4577277de6e" -dependencies = [ - "libc", -] - [[package]] name = "js-sys" version = "0.3.69" @@ -2703,20 +1854,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "jsonwebtoken" -version = "8.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378" -dependencies = [ - "base64 0.21.7", - "pem", - "ring 0.16.20", - "serde", - "serde_json", - "simple_asn1", -] - [[package]] name = "k256" version = "0.13.3" @@ -2728,7 +1865,6 @@ dependencies = [ "elliptic-curve", "once_cell", "sha2", - "signature", ] [[package]] @@ -2750,36 +1886,6 @@ dependencies = [ "sha3-asm", ] -[[package]] -name = "lalrpop" -version = "0.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55cb077ad656299f160924eb2912aa147d7339ea7d69e1b5517326fdcec3c1ca" -dependencies = [ - "ascii-canvas", - "bit-set", - "ena", - "itertools 0.11.0", - "lalrpop-util", - "petgraph", - "regex", - "regex-syntax", - "string_cache", - "term", - "tiny-keccak", - "unicode-xid", - "walkdir", -] - -[[package]] -name = "lalrpop-util" -version = "0.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "507460a910eb7b32ee961886ff48539633b788a36b65692b95f225b844c82553" -dependencies = [ - "regex-automata", -] - [[package]] name = "lazy_static" version = "1.4.0" @@ -2814,16 +1920,6 @@ version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" -[[package]] -name = "libredox" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" -dependencies = [ - "bitflags 2.5.0", - "libc", -] - [[package]] name = "libsqlite3-sys" version = "0.28.0" @@ -2875,16 +1971,6 @@ dependencies = [ "hashbrown", ] -[[package]] -name = "md-5" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" -dependencies = [ - "cfg-if", - "digest 0.10.7", -] - [[package]] name = "memchr" version = "2.7.2" @@ -2941,12 +2027,6 @@ dependencies = [ "tempfile", ] -[[package]] -name = "new_debug_unreachable" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" - [[package]] name = "nom" version = "7.1.3" @@ -2967,12 +2047,6 @@ dependencies = [ "num-traits", ] -[[package]] -name = "num-conv" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" - [[package]] name = "num-integer" version = "0.1.46" @@ -3017,7 +2091,6 @@ version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "681030a937600a36906c185595136d26abfebb4aa9c65701cefcaf8578bb982b" dependencies = [ - "proc-macro-crate", "proc-macro2", "quote", "syn 2.0.66", @@ -3038,38 +2111,13 @@ version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" -[[package]] -name = "open-fastrlp" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "786393f80485445794f6043fd3138854dd109cc6c4bd1a6383db304c9ce9b9ce" -dependencies = [ - "arrayvec", - "auto_impl", - "bytes", - "ethereum-types", - "open-fastrlp-derive", -] - -[[package]] -name = "open-fastrlp-derive" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "003b2be5c6c53c1cfeb0a238b8a1c3915cd410feb684457a36c10038f764bb1c" -dependencies = [ - "bytes", - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "openssl" version = "0.10.64" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f" dependencies = [ - "bitflags 2.5.0", + "bitflags", "cfg-if", "foreign-types", "libc", @@ -3084,224 +2132,99 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.66", -] - -[[package]] -name = "openssl-probe" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" - -[[package]] -name = "openssl-sys" -version = "0.9.102" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c597637d56fbc83893a35eb0dd04b2b8e7a50c91e64e9493e398b5df4fb45fa2" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "option-ext" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" - -[[package]] -name = "parity-scale-codec" -version = "3.6.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "306800abfa29c7f16596b5970a588435e3d5b3149683d00c12b699cc19f895ee" -dependencies = [ - "arrayvec", - "bitvec", - "byte-slice-cast", - "impl-trait-for-tuples", - "parity-scale-codec-derive", - "serde", -] - -[[package]] -name = "parity-scale-codec-derive" -version = "3.6.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d830939c76d294956402033aee57a6da7b438f2294eb94864c37b0569053a42c" -dependencies = [ - "proc-macro-crate", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "parking_lot" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" -dependencies = [ - "lock_api", - "parking_lot_core", -] - -[[package]] -name = "parking_lot_core" -version = "0.9.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall", - "smallvec", - "windows-targets 0.52.5", -] - -[[package]] -name = "password-hash" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7676374caaee8a325c9e7a2ae557f216c5563a171d6997b0ef8a65af35147700" -dependencies = [ - "base64ct", - "rand_core", - "subtle", -] - -[[package]] -name = "paste" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" - -[[package]] -name = "path-slash" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e91099d4268b0e11973f036e885d652fb0b21fedcf69738c627f94db6a44f42" - -[[package]] -name = "pbkdf2" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" -dependencies = [ - "digest 0.10.7", - "hmac", - "password-hash", - "sha2", -] - -[[package]] -name = "pbkdf2" -version = "0.12.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" -dependencies = [ - "digest 0.10.7", - "hmac", -] - -[[package]] -name = "pem" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8" -dependencies = [ - "base64 0.13.1", + "proc-macro2", + "quote", + "syn 2.0.66", ] [[package]] -name = "percent-encoding" -version = "2.3.1" +name = "openssl-probe" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] -name = "pest" -version = "2.7.10" +name = "openssl-sys" +version = "0.9.102" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "560131c633294438da9f7c4b08189194b20946c8274c6b9e38881a7874dc8ee8" +checksum = "c597637d56fbc83893a35eb0dd04b2b8e7a50c91e64e9493e398b5df4fb45fa2" dependencies = [ - "memchr", - "thiserror", - "ucd-trie", + "cc", + "libc", + "pkg-config", + "vcpkg", ] [[package]] -name = "petgraph" -version = "0.6.5" +name = "parity-scale-codec" +version = "3.6.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" +checksum = "306800abfa29c7f16596b5970a588435e3d5b3149683d00c12b699cc19f895ee" dependencies = [ - "fixedbitset", - "indexmap", + "arrayvec", + "bitvec", + "byte-slice-cast", + "impl-trait-for-tuples", + "parity-scale-codec-derive", + "serde", ] [[package]] -name = "pharos" -version = "0.5.3" +name = "parity-scale-codec-derive" +version = "3.6.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9567389417feee6ce15dd6527a8a1ecac205ef62c2932bcf3d9f6fc5b78b414" +checksum = "d830939c76d294956402033aee57a6da7b438f2294eb94864c37b0569053a42c" dependencies = [ - "futures", - "rustc_version 0.4.0", + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 1.0.109", ] [[package]] -name = "phf" -version = "0.11.2" +name = "parking_lot" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" dependencies = [ - "phf_macros", - "phf_shared 0.11.2", + "lock_api", + "parking_lot_core", ] [[package]] -name = "phf_generator" -version = "0.11.2" +name = "parking_lot_core" +version = "0.9.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ - "phf_shared 0.11.2", - "rand", + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-targets 0.52.5", ] [[package]] -name = "phf_macros" -version = "0.11.2" +name = "paste" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b" -dependencies = [ - "phf_generator", - "phf_shared 0.11.2", - "proc-macro2", - "quote", - "syn 2.0.66", -] +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" [[package]] -name = "phf_shared" -version = "0.10.0" +name = "percent-encoding" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" -dependencies = [ - "siphasher", -] +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] -name = "phf_shared" -version = "0.11.2" +name = "pest" +version = "2.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" +checksum = "560131c633294438da9f7c4b08189194b20946c8274c6b9e38881a7874dc8ee8" dependencies = [ - "siphasher", + "memchr", + "thiserror", + "ucd-trie", ] [[package]] @@ -3352,24 +2275,12 @@ version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" -[[package]] -name = "powerfmt" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" - [[package]] name = "ppv-lite86" version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" -[[package]] -name = "precomputed-hash" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" - [[package]] name = "prettyplease" version = "0.2.20" @@ -3388,9 +2299,6 @@ checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" dependencies = [ "fixed-hash", "impl-codec", - "impl-rlp", - "impl-serde", - "scale-info", "uint", ] @@ -3400,31 +2308,29 @@ version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" dependencies = [ - "toml_edit 0.21.1", + "toml_edit", ] [[package]] -name = "proc-macro-error" -version = "1.0.4" +name = "proc-macro-error-attr2" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5" dependencies = [ - "proc-macro-error-attr", "proc-macro2", "quote", - "syn 1.0.109", - "version_check", ] [[package]] -name = "proc-macro-error-attr" -version = "1.0.4" +name = "proc-macro-error2" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802" dependencies = [ + "proc-macro-error-attr2", "proc-macro2", "quote", - "version_check", + "syn 2.0.66", ] [[package]] @@ -3444,7 +2350,7 @@ checksum = "31b476131c3c86cb68032fdc5cb6d5a1045e3e42d96b69fa599fd77701e1f5bf" dependencies = [ "bit-set", "bit-vec", - "bitflags 2.5.0", + "bitflags", "lazy_static", "num-traits", "rand", @@ -3516,44 +2422,13 @@ dependencies = [ "rand_core", ] -[[package]] -name = "rayon" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" -dependencies = [ - "either", - "rayon-core", -] - -[[package]] -name = "rayon-core" -version = "1.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" -dependencies = [ - "crossbeam-deque", - "crossbeam-utils", -] - [[package]] name = "redox_syscall" version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e" dependencies = [ - "bitflags 2.5.0", -] - -[[package]] -name = "redox_users" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891" -dependencies = [ - "getrandom", - "libredox", - "thiserror", + "bitflags", ] [[package]] @@ -3585,64 +2460,22 @@ version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56" -[[package]] -name = "reqwest" -version = "0.11.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" -dependencies = [ - "base64 0.21.7", - "bytes", - "encoding_rs", - "futures-core", - "futures-util", - "h2 0.3.26", - "http 0.2.12", - "http-body 0.4.6", - "hyper 0.14.28", - "hyper-rustls", - "ipnet", - "js-sys", - "log", - "mime", - "once_cell", - "percent-encoding", - "pin-project-lite", - "rustls", - "rustls-pemfile 1.0.4", - "serde", - "serde_json", - "serde_urlencoded", - "sync_wrapper", - "system-configuration", - "tokio", - "tokio-rustls", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "webpki-roots", - "winreg 0.50.0", -] - [[package]] name = "reqwest" version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "566cafdd92868e0939d3fb961bd0dc25fcfaaed179291093b3d43e6b3150ea10" dependencies = [ - "base64 0.22.1", + "base64", "bytes", - "encoding_rs", "futures-channel", "futures-core", "futures-util", - "h2 0.4.5", - "http 1.1.0", - "http-body 1.0.0", + "http", + "http-body", "http-body-util", - "hyper 1.3.1", + "hyper", + "hyper-rustls", "hyper-tls", "hyper-util", "ipnet", @@ -3653,20 +2486,23 @@ dependencies = [ "once_cell", "percent-encoding", "pin-project-lite", - "rustls-pemfile 2.1.2", + "rustls", + "rustls-pemfile", + "rustls-pki-types", "serde", "serde_json", "serde_urlencoded", "sync_wrapper", - "system-configuration", "tokio", "tokio-native-tls", + "tokio-rustls", "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "winreg 0.52.0", + "webpki-roots", + "winreg", ] [[package]] @@ -3679,21 +2515,6 @@ dependencies = [ "subtle", ] -[[package]] -name = "ring" -version = "0.16.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" -dependencies = [ - "cc", - "libc", - "once_cell", - "spin 0.5.2", - "untrusted 0.7.1", - "web-sys", - "winapi", -] - [[package]] name = "ring" version = "0.17.8" @@ -3704,20 +2525,11 @@ dependencies = [ "cfg-if", "getrandom", "libc", - "spin 0.9.8", - "untrusted 0.9.0", + "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 0.10.7", -] - [[package]] name = "rlp" version = "0.5.2" @@ -3725,41 +2537,42 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" dependencies = [ "bytes", - "rlp-derive", "rustc-hex", ] -[[package]] -name = "rlp-derive" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e33d7b2abe0c340d8797fe2907d3f20d3b5ea5908683618bfe80df7f621f672a" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "rollups-blockchain-reader" version = "0.1.0" dependencies = [ + "alloy", + "alloy-rpc-types-eth", "async-recursion", + "cartesi-dave-contracts", "cartesi-rollups-contracts", "clap", "clap_derive", - "ethers", + "num-traits", "rollups-state-manager", "thiserror", "tokio", ] +[[package]] +name = "rollups-compute-runner" +version = "0.1.0" +dependencies = [ + "cartesi-prt-core", + "rollups-state-manager", +] + [[package]] name = "rollups-epoch-manager" version = "0.1.0" dependencies = [ + "alloy", "anyhow", - "ethers", + "cartesi-dave-contracts", + "cartesi-prt-core", "rollups-state-manager", "tokio", ] @@ -3768,17 +2581,15 @@ dependencies = [ name = "rollups-machine-runner" version = "0.1.0" dependencies = [ + "alloy", "cartesi-dave-arithmetic", "cartesi-dave-merkle", "cartesi-machine", "cartesi-prt-core", "cartesi-rollups-contracts", - "ethers", "hex", "rollups-state-manager", - "serde", "thiserror", - "tokio", ] [[package]] @@ -3827,7 +2638,7 @@ version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b838eba278d213a8beaf485bd313fd580ca4505a00d5871caeb1457c55322cae" dependencies = [ - "bitflags 2.5.0", + "bitflags", "fallible-iterator", "fallible-streaming-iterator", "hashlink", @@ -3887,7 +2698,7 @@ version = "0.38.34" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" dependencies = [ - "bitflags 2.5.0", + "bitflags", "errno", "libc", "linux-raw-sys", @@ -3896,23 +2707,16 @@ dependencies = [ [[package]] name = "rustls" -version = "0.21.12" +version = "0.22.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" +checksum = "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432" dependencies = [ "log", - "ring 0.17.8", + "ring", + "rustls-pki-types", "rustls-webpki", - "sct", -] - -[[package]] -name = "rustls-pemfile" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" -dependencies = [ - "base64 0.21.7", + "subtle", + "zeroize", ] [[package]] @@ -3921,24 +2725,25 @@ version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "29993a25686778eb88d4189742cd713c9bce943bc54251a33509dc63cbacf73d" dependencies = [ - "base64 0.22.1", + "base64", "rustls-pki-types", ] [[package]] name = "rustls-pki-types" -version = "1.7.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "976295e77ce332211c0d24d92c0e83e50f5c5f046d11082cea19f3df13a3562d" +checksum = "fc0a2ce646f8655401bb81e7927b812614bd5d91dbc968696be50603510fcaf0" [[package]] name = "rustls-webpki" -version = "0.101.7" +version = "0.102.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" +checksum = "84678086bd54edf2b415183ed7a94d0efb049f1b646a33e22a36f3794be6ae56" dependencies = [ - "ring 0.17.8", - "untrusted 0.9.0", + "ring", + "rustls-pki-types", + "untrusted", ] [[package]] @@ -3965,48 +2770,6 @@ version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" -[[package]] -name = "salsa20" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213" -dependencies = [ - "cipher", -] - -[[package]] -name = "same-file" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "scale-info" -version = "2.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eca070c12893629e2cc820a9761bedf6ce1dcddc9852984d1dc734b8bd9bd024" -dependencies = [ - "cfg-if", - "derive_more", - "parity-scale-codec", - "scale-info-derive", -] - -[[package]] -name = "scale-info-derive" -version = "2.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d35494501194174bda522a32605929eefc9ecf7e0a326c26db1fdd85881eb62" -dependencies = [ - "proc-macro-crate", - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "schannel" version = "0.1.23" @@ -4022,28 +2785,6 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" -[[package]] -name = "scrypt" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f9e24d2b632954ded8ab2ef9fea0a0c769ea56ea98bddbafbad22caeeadf45d" -dependencies = [ - "hmac", - "pbkdf2 0.11.0", - "salsa20", - "sha2", -] - -[[package]] -name = "sct" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" -dependencies = [ - "ring 0.17.8", - "untrusted 0.9.0", -] - [[package]] name = "sec1" version = "0.7.3" @@ -4064,7 +2805,7 @@ version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c627723fd09706bacdb5cf41499e95098555af3c3c29d014dc3c458ef6be11c0" dependencies = [ - "bitflags 2.5.0", + "bitflags", "core-foundation", "core-foundation-sys", "libc", @@ -4095,30 +2836,15 @@ name = "semver" version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" -dependencies = [ - "serde", -] - -[[package]] -name = "semver-parser" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" -dependencies = [ - "pest", -] - -[[package]] -name = "send_wrapper" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f638d531eccd6e23b980caf34876660d38e265409d8e99b397ab71eb3612fad0" [[package]] -name = "send_wrapper" -version = "0.6.0" +name = "semver-parser" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" +checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" +dependencies = [ + "pest", +] [[package]] name = "serde" @@ -4151,15 +2877,6 @@ dependencies = [ "serde", ] -[[package]] -name = "serde_spanned" -version = "0.6.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79e674e01f999af37c49f70a6ede167a8a60b2503e56c5599532a65baa5969a0" -dependencies = [ - "serde", -] - [[package]] name = "serde_urlencoded" version = "0.7.1" @@ -4239,24 +2956,6 @@ dependencies = [ "rand_core", ] -[[package]] -name = "simple_asn1" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085" -dependencies = [ - "num-bigint", - "num-traits", - "thiserror", - "time", -] - -[[package]] -name = "siphasher" -version = "0.3.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" - [[package]] name = "slab" version = "0.4.9" @@ -4282,26 +2981,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "solang-parser" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c425ce1c59f4b154717592f0bdf4715c3a1d55058883622d3157e1f0908a5b26" -dependencies = [ - "itertools 0.11.0", - "lalrpop", - "lalrpop-util", - "phf", - "thiserror", - "unicode-xid", -] - -[[package]] -name = "spin" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" - [[package]] name = "spin" version = "0.9.8" @@ -4324,19 +3003,6 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" -[[package]] -name = "string_cache" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b" -dependencies = [ - "new_debug_unreachable", - "once_cell", - "parking_lot", - "phf_shared 0.10.0", - "precomputed-hash", -] - [[package]] name = "strsim" version = "0.11.1" @@ -4371,26 +3037,6 @@ version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" -[[package]] -name = "svm-rs" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11297baafe5fa0c99d5722458eac6a5e25c01eb1b8e5cd137f54079093daa7a4" -dependencies = [ - "dirs", - "fs2", - "hex", - "once_cell", - "reqwest 0.11.27", - "semver 1.0.23", - "serde", - "serde_json", - "sha2", - "thiserror", - "url", - "zip", -] - [[package]] name = "syn" version = "1.0.109" @@ -4415,9 +3061,9 @@ dependencies = [ [[package]] name = "syn-solidity" -version = "0.7.7" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c837dc8852cb7074e46b444afb81783140dab12c58867b49fb3898fbafedf7ea" +checksum = "f1e1355d44af21638c8e05d45097db6cb5ec2aa3e970c51cb2901605cf3344fa" dependencies = [ "paste", "proc-macro2", @@ -4431,27 +3077,6 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" -[[package]] -name = "system-configuration" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" -dependencies = [ - "bitflags 1.3.2", - "core-foundation", - "system-configuration-sys", -] - -[[package]] -name = "system-configuration-sys" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" -dependencies = [ - "core-foundation-sys", - "libc", -] - [[package]] name = "tap" version = "1.0.1" @@ -4470,26 +3095,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "term" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f" -dependencies = [ - "dirs-next", - "rustversion", - "winapi", -] - -[[package]] -name = "termcolor" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" -dependencies = [ - "winapi-util", -] - [[package]] name = "thiserror" version = "1.0.61" @@ -4519,37 +3124,6 @@ dependencies = [ "num_cpus", ] -[[package]] -name = "time" -version = "0.3.36" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" -dependencies = [ - "deranged", - "itoa", - "num-conv", - "powerfmt", - "serde", - "time-core", - "time-macros", -] - -[[package]] -name = "time-core" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" - -[[package]] -name = "time-macros" -version = "0.2.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" -dependencies = [ - "num-conv", - "time-core", -] - [[package]] name = "tiny-keccak" version = "2.0.2" @@ -4616,11 +3190,12 @@ dependencies = [ [[package]] name = "tokio-rustls" -version = "0.24.1" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" +checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f" dependencies = [ "rustls", + "rustls-pki-types", "tokio", ] @@ -4636,21 +3211,6 @@ dependencies = [ "tokio-util", ] -[[package]] -name = "tokio-tungstenite" -version = "0.20.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c" -dependencies = [ - "futures-util", - "log", - "rustls", - "tokio", - "tokio-rustls", - "tungstenite", - "webpki-roots", -] - [[package]] name = "tokio-util" version = "0.7.11" @@ -4664,26 +3224,11 @@ dependencies = [ "tokio", ] -[[package]] -name = "toml" -version = "0.8.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4e43f8cc456c9704c851ae29c67e17ef65d2c30017c17a9765b89c382dc8bba" -dependencies = [ - "serde", - "serde_spanned", - "toml_datetime", - "toml_edit 0.22.13", -] - [[package]] name = "toml_datetime" version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4badfd56924ae69bcc9039335b2e017639ce3f9b001c393c1b2d1ef846ce2cbf" -dependencies = [ - "serde", -] [[package]] name = "toml_edit" @@ -4696,19 +3241,6 @@ dependencies = [ "winnow 0.5.40", ] -[[package]] -name = "toml_edit" -version = "0.22.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c127785850e8c20836d49732ae6abfa47616e60bf9d9f57c43c250361a9db96c" -dependencies = [ - "indexmap", - "serde", - "serde_spanned", - "toml_datetime", - "winnow 0.6.8", -] - [[package]] name = "tower" version = "0.4.13" @@ -4769,42 +3301,12 @@ dependencies = [ "once_cell", ] -[[package]] -name = "tracing-futures" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" -dependencies = [ - "pin-project", - "tracing", -] - [[package]] name = "try-lock" version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" -[[package]] -name = "tungstenite" -version = "0.20.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9" -dependencies = [ - "byteorder", - "bytes", - "data-encoding", - "http 0.2.12", - "httparse", - "log", - "rand", - "rustls", - "sha1", - "thiserror", - "url", - "utf-8", -] - [[package]] name = "typenum" version = "1.17.0" @@ -4862,12 +3364,6 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" -[[package]] -name = "untrusted" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" - [[package]] name = "untrusted" version = "0.9.0" @@ -4885,28 +3381,12 @@ dependencies = [ "percent-encoding", ] -[[package]] -name = "utf-8" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" - [[package]] name = "utf8parse" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" -[[package]] -name = "uuid" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" -dependencies = [ - "getrandom", - "serde", -] - [[package]] name = "valuable" version = "0.1.0" @@ -4934,16 +3414,6 @@ dependencies = [ "libc", ] -[[package]] -name = "walkdir" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" -dependencies = [ - "same-file", - "winapi-util", -] - [[package]] name = "want" version = "0.3.1" @@ -5037,9 +3507,12 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.25.4" +version = "0.26.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" +checksum = "0bd24728e5af82c6c4ec1b66ac4844bdf8156257fccda846ec58b42cd0cdbe6a" +dependencies = [ + "rustls-pki-types", +] [[package]] name = "which" @@ -5053,37 +3526,6 @@ dependencies = [ "rustix", ] -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - -[[package]] -name = "winapi-util" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b" -dependencies = [ - "windows-sys 0.52.0", -] - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - [[package]] name = "windows-sys" version = "0.48.0" @@ -5241,16 +3683,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "winreg" -version = "0.50.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] - [[package]] name = "winreg" version = "0.52.0" @@ -5261,25 +3693,6 @@ dependencies = [ "windows-sys 0.48.0", ] -[[package]] -name = "ws_stream_wasm" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7999f5f4217fe3818726b66257a4475f71e74ffd190776ad053fa159e50737f5" -dependencies = [ - "async_io_stream", - "futures", - "js-sys", - "log", - "pharos", - "rustc_version 0.4.0", - "send_wrapper 0.6.0", - "thiserror", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - [[package]] name = "wyz" version = "0.5.1" @@ -5289,12 +3702,6 @@ dependencies = [ "tap", ] -[[package]] -name = "yansi" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" - [[package]] name = "zerocopy" version = "0.7.34" @@ -5334,52 +3741,3 @@ dependencies = [ "quote", "syn 2.0.66", ] - -[[package]] -name = "zip" -version = "0.6.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261" -dependencies = [ - "aes", - "byteorder", - "bzip2", - "constant_time_eq", - "crc32fast", - "crossbeam-utils", - "flate2", - "hmac", - "pbkdf2 0.11.0", - "sha1", - "time", - "zstd", -] - -[[package]] -name = "zstd" -version = "0.11.2+zstd.1.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4" -dependencies = [ - "zstd-safe", -] - -[[package]] -name = "zstd-safe" -version = "5.0.2+zstd.1.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db" -dependencies = [ - "libc", - "zstd-sys", -] - -[[package]] -name = "zstd-sys" -version = "2.0.10+zstd.1.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c253a4914af5bafc8fa8c86ee400827e83cf6ec01195ec1f1ed8441bf00d65aa" -dependencies = [ - "cc", - "pkg-config", -] diff --git a/prt/prt-rs/Cargo.lock b/prt/prt-rs/Cargo.lock index 8b9d29ba..6a6a6b64 100644 --- a/prt/prt-rs/Cargo.lock +++ b/prt/prt-rs/Cargo.lock @@ -2,16 +2,6 @@ # It is not intended for manual editing. version = 3 -[[package]] -name = "Inflector" -version = "0.11.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" -dependencies = [ - "lazy_static", - "regex", -] - [[package]] name = "addr2line" version = "0.22.0" @@ -28,14 +18,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] -name = "aes" -version = "0.8.4" +name = "ahash" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" dependencies = [ "cfg-if", - "cipher", - "cpufeatures", + "once_cell", + "version_check", + "zerocopy", ] [[package]] @@ -48,1439 +39,1275 @@ dependencies = [ ] [[package]] -name = "alloy-json-abi" -version = "0.5.4" +name = "allocator-api2" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "838228983f74f30e4efbd8d42d25bfe1b5bf6450ca71ee9d7628f134fbe8ae8e" -dependencies = [ - "alloy-primitives", - "alloy-sol-type-parser", - "serde", - "serde_json", -] +checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" [[package]] -name = "alloy-primitives" -version = "0.5.4" +name = "alloy" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c234f92024707f224510ff82419b2be0e1d8e1fd911defcac5a085cd7f83898" +checksum = "0f13f1940c81e269e84ddb58f3b611be9660fbbfe39d4338aa2984dc3df0c402" dependencies = [ - "alloy-rlp", - "bytes", - "cfg-if", - "const-hex", - "derive_more", - "getrandom", - "hex-literal", - "itoa", - "keccak-asm", - "proptest", - "rand", - "ruint", - "serde", - "tiny-keccak", + "alloy-consensus", + "alloy-contract", + "alloy-core", + "alloy-eips", + "alloy-genesis", + "alloy-network", + "alloy-provider", + "alloy-rpc-client", + "alloy-serde", + "alloy-signer", + "alloy-signer-local", + "alloy-transport", + "alloy-transport-http", ] [[package]] -name = "alloy-rlp" -version = "0.3.8" +name = "alloy-chains" +version = "0.1.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26154390b1d205a4a7ac7352aa2eb4f81f391399d4e2f546fb81a2f8bb383f62" +checksum = "2b4f201b0ac8f81315fbdc55269965a8ddadbc04ab47fa65a1a468f9a40f7a5f" dependencies = [ - "arrayvec", - "bytes", + "num_enum", + "strum", ] [[package]] -name = "alloy-sol-type-parser" -version = "0.5.4" +name = "alloy-consensus" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c82c1ed2d61e982cef4c4d709f4aeef5f39a6a6a7c59b6e54c9ed4f3f7e3741b" +checksum = "4177d135789e282e925092be8939d421b701c6d92c0a16679faa659d9166289d" dependencies = [ - "winnow 0.5.40", + "alloy-eips", + "alloy-primitives", + "alloy-rlp", + "alloy-serde", + "c-kzg", + "serde", ] [[package]] -name = "anstream" -version = "0.6.15" +name = "alloy-contract" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526" +checksum = "e3be15f92fdb7490b164697a1d9b395cb7a3afa8fb15feed732ec5a6ff8db5f4" dependencies = [ - "anstyle", - "anstyle-parse", - "anstyle-query", - "anstyle-wincon", - "colorchoice", - "is_terminal_polyfill", - "utf8parse", + "alloy-dyn-abi", + "alloy-json-abi", + "alloy-network", + "alloy-network-primitives", + "alloy-primitives", + "alloy-provider", + "alloy-rpc-types-eth", + "alloy-sol-types", + "alloy-transport", + "futures", + "futures-util", + "thiserror", ] [[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" +name = "alloy-core" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb" +checksum = "4f5aeeac2715738ff43076b65ca27bc0a2025ce0ee69f537c11c632027360bff" dependencies = [ - "utf8parse", + "alloy-dyn-abi", + "alloy-json-abi", + "alloy-primitives", + "alloy-sol-types", ] [[package]] -name = "anstyle-query" -version = "1.1.1" +name = "alloy-dyn-abi" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a" +checksum = "b03f58cfae4d41b624effe1f11624ee40499449174b20a6d6505fd72ef0d547d" dependencies = [ - "windows-sys 0.52.0", + "alloy-json-abi", + "alloy-primitives", + "alloy-sol-type-parser", + "alloy-sol-types", + "const-hex", + "itoa", + "serde", + "serde_json", + "winnow 0.6.18", ] [[package]] -name = "anstyle-wincon" -version = "3.0.4" +name = "alloy-eip2930" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8" +checksum = "0069cf0642457f87a01a014f6dc29d5d893cd4fd8fddf0c3cdfad1bb3ebafc41" dependencies = [ - "anstyle", - "windows-sys 0.52.0", + "alloy-primitives", + "alloy-rlp", + "serde", ] [[package]] -name = "anyhow" -version = "1.0.86" +name = "alloy-eip7702" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" +checksum = "37d319bb544ca6caeab58c39cea8921c55d924d4f68f2c60f24f914673f9a74a" +dependencies = [ + "alloy-primitives", + "alloy-rlp", + "serde", +] [[package]] -name = "ark-ff" -version = "0.3.0" +name = "alloy-eips" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b3235cc41ee7a12aaaf2c575a2ad7b46713a8a50bda2fc3b003a04845c05dd6" +checksum = "499ee14d296a133d142efd215eb36bf96124829fe91cf8f5d4e5ccdd381eae00" dependencies = [ - "ark-ff-asm 0.3.0", - "ark-ff-macros 0.3.0", - "ark-serialize 0.3.0", - "ark-std 0.3.0", - "derivative", - "num-bigint", - "num-traits", - "paste", - "rustc_version 0.3.3", - "zeroize", + "alloy-eip2930", + "alloy-eip7702", + "alloy-primitives", + "alloy-rlp", + "alloy-serde", + "c-kzg", + "derive_more", + "once_cell", + "serde", + "sha2", ] [[package]] -name = "ark-ff" -version = "0.4.2" +name = "alloy-genesis" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec847af850f44ad29048935519032c33da8aa03340876d351dfab5660d2966ba" +checksum = "4b85dfc693e4a1193f0372a8f789df12ab51fcbe7be0733baa04939a86dd813b" dependencies = [ - "ark-ff-asm 0.4.2", - "ark-ff-macros 0.4.2", - "ark-serialize 0.4.2", - "ark-std 0.4.0", - "derivative", - "digest 0.10.7", - "itertools 0.10.5", - "num-bigint", - "num-traits", - "paste", - "rustc_version 0.4.0", - "zeroize", + "alloy-primitives", + "alloy-serde", + "serde", ] [[package]] -name = "ark-ff-asm" -version = "0.3.0" +name = "alloy-json-abi" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db02d390bf6643fb404d3d22d31aee1c4bc4459600aef9113833d17e786c6e44" +checksum = "a28ecae8b5315daecd0075084eb47f4374b3037777346ca52fc8d9c327693f02" dependencies = [ - "quote", - "syn 1.0.109", + "alloy-primitives", + "alloy-sol-type-parser", + "serde", + "serde_json", ] [[package]] -name = "ark-ff-asm" -version = "0.4.2" +name = "alloy-json-rpc" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ed4aa4fe255d0bc6d79373f7e31d2ea147bcf486cba1be5ba7ea85abdb92348" +checksum = "4207166c79cfdf7f3bed24bbc84f5c7c5d4db1970f8c82e3fcc76257f16d2166" dependencies = [ - "quote", - "syn 1.0.109", + "alloy-primitives", + "alloy-sol-types", + "serde", + "serde_json", + "thiserror", + "tracing", ] [[package]] -name = "ark-ff-macros" -version = "0.3.0" +name = "alloy-network" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fd794a08ccb318058009eefdf15bcaaaaf6f8161eb3345f907222bac38b20" +checksum = "dfbe2802d5b8c632f18d68c352073378f02a3407c1b6a4487194e7d21ab0f002" dependencies = [ - "num-bigint", - "num-traits", - "quote", - "syn 1.0.109", + "alloy-consensus", + "alloy-eips", + "alloy-json-rpc", + "alloy-network-primitives", + "alloy-primitives", + "alloy-rpc-types-eth", + "alloy-serde", + "alloy-signer", + "alloy-sol-types", + "async-trait", + "auto_impl", + "futures-utils-wasm", + "thiserror", ] [[package]] -name = "ark-ff-macros" -version = "0.4.2" +name = "alloy-network-primitives" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" +checksum = "396c07726030fa0f9dab5da8c71ccd69d5eb74a7fe1072b7ae453a67e4fe553e" dependencies = [ - "num-bigint", - "num-traits", - "proc-macro2", - "quote", - "syn 1.0.109", + "alloy-primitives", + "alloy-serde", + "serde", ] [[package]] -name = "ark-serialize" -version = "0.3.0" +name = "alloy-primitives" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d6c2b318ee6e10f8c2853e73a83adc0ccb88995aa978d8a3408d492ab2ee671" +checksum = "ccb865df835f851b367ae439d6c82b117ded971628c8888b24fed411a290e38a" dependencies = [ - "ark-std 0.3.0", - "digest 0.9.0", + "alloy-rlp", + "bytes", + "cfg-if", + "const-hex", + "derive_more", + "hex-literal", + "itoa", + "k256", + "keccak-asm", + "proptest", + "rand", + "ruint", + "serde", + "tiny-keccak", ] [[package]] -name = "ark-serialize" -version = "0.4.2" +name = "alloy-provider" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" +checksum = "1376948df782ffee83a54cac4b2aba14134edd997229a3db97da0a606586eb5c" dependencies = [ - "ark-std 0.4.0", - "digest 0.10.7", - "num-bigint", + "alloy-chains", + "alloy-consensus", + "alloy-eips", + "alloy-json-rpc", + "alloy-network", + "alloy-network-primitives", + "alloy-primitives", + "alloy-rpc-client", + "alloy-rpc-types-eth", + "alloy-transport", + "alloy-transport-http", + "async-stream", + "async-trait", + "auto_impl", + "dashmap", + "futures", + "futures-utils-wasm", + "lru", + "pin-project", + "reqwest", + "serde", + "serde_json", + "thiserror", + "tokio", + "tracing", + "url", ] [[package]] -name = "ark-std" -version = "0.3.0" +name = "alloy-rlp" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1df2c09229cbc5a028b1d70e00fdb2acee28b1055dfb5ca73eea49c5a25c4e7c" +checksum = "26154390b1d205a4a7ac7352aa2eb4f81f391399d4e2f546fb81a2f8bb383f62" dependencies = [ - "num-traits", - "rand", + "alloy-rlp-derive", + "arrayvec", + "bytes", ] [[package]] -name = "ark-std" -version = "0.4.0" +name = "alloy-rlp-derive" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" +checksum = "4d0f2d905ebd295e7effec65e5f6868d153936130ae718352771de3e7d03c75c" dependencies = [ - "num-traits", - "rand", + "proc-macro2", + "quote", + "syn 2.0.74", ] [[package]] -name = "arrayvec" -version = "0.7.4" +name = "alloy-rpc-client" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" - -[[package]] -name = "ascii-canvas" -version = "3.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8824ecca2e851cec16968d54a01dd372ef8f95b244fb84b84e70128be347c3c6" +checksum = "02378418a429f8a14a0ad8ffaa15b2d25ff34914fc4a1e366513c6a3800e03b3" dependencies = [ - "term", + "alloy-json-rpc", + "alloy-transport", + "alloy-transport-http", + "futures", + "pin-project", + "reqwest", + "serde", + "serde_json", + "tokio", + "tokio-stream", + "tower", + "tracing", + "url", ] [[package]] -name = "async-recursion" -version = "1.1.1" +name = "alloy-rpc-types-eth" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" +checksum = "15bb3506ab1cf415d4752778c93e102050399fb8de97b7da405a5bf3e31f5f3b" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.74", + "alloy-consensus", + "alloy-eips", + "alloy-network-primitives", + "alloy-primitives", + "alloy-rlp", + "alloy-serde", + "alloy-sol-types", + "itertools 0.13.0", + "serde", + "serde_json", + "thiserror", ] [[package]] -name = "async-trait" -version = "0.1.81" +name = "alloy-serde" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107" +checksum = "ae417978015f573b4a8c02af17f88558fb22e3fccd12e8a910cf6a2ff331cfcb" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.74", + "alloy-primitives", + "serde", + "serde_json", ] [[package]] -name = "async_io_stream" -version = "0.3.3" +name = "alloy-signer" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6d7b9decdf35d8908a7e3ef02f64c5e9b1695e230154c0e8de3969142d9b94c" +checksum = "b750c9b61ac0646f8f4a61231c2732a337b2c829866fc9a191b96b7eedf80ffe" dependencies = [ - "futures", - "pharos", - "rustc_version 0.4.0", + "alloy-primitives", + "async-trait", + "auto_impl", + "elliptic-curve", + "k256", + "thiserror", ] [[package]] -name = "atomic-waker" -version = "1.1.2" +name = "alloy-signer-local" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" +checksum = "7c640f9343e8f741f837c345c5ea30239ba77938b3691b884c736834853bd16c" +dependencies = [ + "alloy-consensus", + "alloy-network", + "alloy-primitives", + "alloy-signer", + "async-trait", + "k256", + "rand", + "thiserror", +] [[package]] -name = "auto_impl" -version = "1.2.0" +name = "alloy-sol-macro" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" +checksum = "e2dc5201ca0018afb7a3e0cd8bd15f7ca6aca924333b5f3bb87463b41d0c4ef2" dependencies = [ + "alloy-sol-macro-expander", + "alloy-sol-macro-input", + "proc-macro-error2", "proc-macro2", "quote", "syn 2.0.74", ] [[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" +name = "alloy-sol-macro-expander" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a" +checksum = "155f63dc6945885aa4532601800201fddfaa3b20901fda8e8c2570327242fe0e" dependencies = [ - "addr2line", - "cc", - "cfg-if", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", + "alloy-json-abi", + "alloy-sol-macro-input", + "const-hex", + "heck", + "indexmap", + "proc-macro-error2", + "proc-macro2", + "quote", + "syn 2.0.74", + "syn-solidity", + "tiny-keccak", ] [[package]] -name = "base16ct" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" - -[[package]] -name = "base64" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" - -[[package]] -name = "base64" -version = "0.21.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" - -[[package]] -name = "base64" -version = "0.22.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" - -[[package]] -name = "base64ct" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" - -[[package]] -name = "bech32" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445" - -[[package]] -name = "bindgen" -version = "0.69.4" +name = "alloy-sol-macro-input" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a00dc851838a2120612785d195287475a3ac45514741da670b735818822129a0" +checksum = "847700aa9cb59d3c7b290b2d05976cd8d76b64d73bb63116a9533132d995586b" dependencies = [ - "bitflags 2.6.0", - "cexpr", - "clang-sys", - "itertools 0.12.1", - "lazy_static", - "lazycell", - "log", - "prettyplease", + "alloy-json-abi", + "const-hex", + "dunce", + "heck", "proc-macro2", "quote", - "regex", - "rustc-hash", - "shlex", + "serde_json", "syn 2.0.74", - "which", + "syn-solidity", ] [[package]] -name = "bit-set" -version = "0.5.3" +name = "alloy-sol-type-parser" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +checksum = "3a6b5d462d4520bd9ed70d8364c6280aeff13baa46ea26be1ddd33538dbbe6ac" dependencies = [ - "bit-vec", + "serde", + "winnow 0.6.18", ] [[package]] -name = "bit-vec" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" - -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "bitflags" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" - -[[package]] -name = "bitvec" -version = "1.0.1" +name = "alloy-sol-types" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +checksum = "83665e5607725a7a1aab3cb0dea708f4a05e70776954ec7f0a9461439175c957" dependencies = [ - "funty", - "radium", - "tap", - "wyz", + "alloy-json-abi", + "alloy-primitives", + "alloy-sol-macro", + "const-hex", + "serde", ] [[package]] -name = "block-buffer" -version = "0.10.4" +name = "alloy-transport" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +checksum = "2799749ca692ae145f54968778877afd7c95e788488f176cfdfcf2a8abeb2062" dependencies = [ - "generic-array", + "alloy-json-rpc", + "base64", + "futures-util", + "futures-utils-wasm", + "serde", + "serde_json", + "thiserror", + "tokio", + "tower", + "tracing", + "url", ] [[package]] -name = "bs58" -version = "0.5.1" +name = "alloy-transport-http" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" +checksum = "bc10c4dd932f66e0db6cc5735241e0c17a6a18564b430bbc1839f7db18587a93" dependencies = [ - "sha2", - "tinyvec", + "alloy-json-rpc", + "alloy-transport", + "reqwest", + "serde_json", + "tower", + "tracing", + "url", ] [[package]] -name = "bumpalo" -version = "3.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" - -[[package]] -name = "byte-slice-cast" -version = "1.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" - -[[package]] -name = "byteorder" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" - -[[package]] -name = "bytes" -version = "1.7.1" +name = "anstream" +version = "0.6.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50" +checksum = "64e15c1ab1f89faffbf04a634d5e1962e9074f2741eef6d97f3c4e322426d526" dependencies = [ - "serde", + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is_terminal_polyfill", + "utf8parse", ] [[package]] -name = "bzip2" -version = "0.4.4" +name = "anstyle" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8" -dependencies = [ - "bzip2-sys", - "libc", -] +checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1" [[package]] -name = "bzip2-sys" -version = "0.1.11+1.0.8" +name = "anstyle-parse" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc" +checksum = "eb47de1e80c2b463c735db5b217a0ddc39d612e7ac9e2e96a5aed1f57616c1cb" dependencies = [ - "cc", - "libc", - "pkg-config", + "utf8parse", ] [[package]] -name = "camino" -version = "1.1.7" +name = "anstyle-query" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0ec6b951b160caa93cc0c7b209e5a3bff7aae9062213451ac99493cd844c239" +checksum = "6d36fc52c7f6c869915e99412912f22093507da8d9e942ceaf66fe4b7c14422a" dependencies = [ - "serde", + "windows-sys 0.52.0", ] [[package]] -name = "cargo-platform" -version = "0.1.8" +name = "anstyle-wincon" +version = "3.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24b1f0365a6c6bb4020cd05806fd0d33c44d38046b8bd7f0e40814b9763cabfc" +checksum = "5bf74e1b6e971609db8ca7a9ce79fd5768ab6ae46441c572e46cf596f59e57f8" dependencies = [ - "serde", + "anstyle", + "windows-sys 0.52.0", ] [[package]] -name = "cargo_metadata" -version = "0.18.1" +name = "anyhow" +version = "1.0.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037" -dependencies = [ - "camino", - "cargo-platform", - "semver 1.0.23", - "serde", - "serde_json", - "thiserror", -] - -[[package]] -name = "cartesi-dave-arithmetic" -version = "0.1.0" - -[[package]] -name = "cartesi-dave-merkle" -version = "0.1.0" -dependencies = [ - "hex", - "ruint", - "sha3", - "thiserror", -] - -[[package]] -name = "cartesi-machine" -version = "0.17.0" -dependencies = [ - "cartesi-machine-sys", - "hex", - "thiserror", -] +checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" [[package]] -name = "cartesi-machine-sys" -version = "0.17.0" +name = "ark-ff" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b3235cc41ee7a12aaaf2c575a2ad7b46713a8a50bda2fc3b003a04845c05dd6" dependencies = [ - "bindgen", - "bytes", - "cfg-if", - "hex-literal", - "link-cplusplus", - "reqwest 0.12.5", - "sha1", + "ark-ff-asm 0.3.0", + "ark-ff-macros 0.3.0", + "ark-serialize 0.3.0", + "ark-std 0.3.0", + "derivative", + "num-bigint", + "num-traits", + "paste", + "rustc_version 0.3.3", + "zeroize", ] [[package]] -name = "cartesi-prt-compute" -version = "0.1.0" +name = "ark-ff" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec847af850f44ad29048935519032c33da8aa03340876d351dfab5660d2966ba" dependencies = [ - "anyhow", - "cartesi-prt-core", - "clap", - "env_logger", - "ethers", - "log", - "tokio", + "ark-ff-asm 0.4.2", + "ark-ff-macros 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "derivative", + "digest 0.10.7", + "itertools 0.10.5", + "num-bigint", + "num-traits", + "paste", + "rustc_version 0.4.0", + "zeroize", ] [[package]] -name = "cartesi-prt-contracts" -version = "0.1.0" +name = "ark-ff-asm" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db02d390bf6643fb404d3d22d31aee1c4bc4459600aef9113833d17e786c6e44" dependencies = [ - "ethers", - "serde", + "quote", + "syn 1.0.109", ] [[package]] -name = "cartesi-prt-core" -version = "0.1.0" +name = "ark-ff-asm" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ed4aa4fe255d0bc6d79373f7e31d2ea147bcf486cba1be5ba7ea85abdb92348" dependencies = [ - "anyhow", - "async-recursion", - "async-trait", - "cartesi-dave-arithmetic", - "cartesi-dave-merkle", - "cartesi-machine", - "cartesi-prt-contracts", - "clap", - "clap_derive", - "convert_case 0.6.0", - "ethers", - "ethers-contract-abigen", - "foundry-compilers", - "hex", - "log", - "serde_json", - "sha3", - "thiserror", + "quote", + "syn 1.0.109", ] [[package]] -name = "cc" -version = "1.1.11" +name = "ark-ff-macros" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fb8dd288a69fc53a1996d7ecfbf4a20d59065bff137ce7e56bbd620de191189" +checksum = "db2fd794a08ccb318058009eefdf15bcaaaaf6f8161eb3345f907222bac38b20" dependencies = [ - "jobserver", - "libc", - "shlex", + "num-bigint", + "num-traits", + "quote", + "syn 1.0.109", ] [[package]] -name = "cexpr" -version = "0.6.0" +name = "ark-ff-macros" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" +checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" dependencies = [ - "nom", + "num-bigint", + "num-traits", + "proc-macro2", + "quote", + "syn 1.0.109", ] [[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "chrono" -version = "0.4.38" +name = "ark-serialize" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" +checksum = "1d6c2b318ee6e10f8c2853e73a83adc0ccb88995aa978d8a3408d492ab2ee671" dependencies = [ - "num-traits", + "ark-std 0.3.0", + "digest 0.9.0", ] [[package]] -name = "cipher" -version = "0.4.4" +name = "ark-serialize" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" dependencies = [ - "crypto-common", - "inout", + "ark-std 0.4.0", + "digest 0.10.7", + "num-bigint", ] [[package]] -name = "clang-sys" -version = "1.8.1" +name = "ark-std" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" +checksum = "1df2c09229cbc5a028b1d70e00fdb2acee28b1055dfb5ca73eea49c5a25c4e7c" dependencies = [ - "glob", - "libc", - "libloading", + "num-traits", + "rand", ] [[package]] -name = "clap" -version = "4.5.7" +name = "ark-std" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5db83dced34638ad474f39f250d7fea9598bdd239eaced1bdf45d597da0f433f" +checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" dependencies = [ - "clap_builder", - "clap_derive", + "num-traits", + "rand", ] [[package]] -name = "clap_builder" -version = "4.5.7" +name = "arrayvec" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7e204572485eb3fbf28f871612191521df159bc3e15a9f5064c66dba3a8c05f" -dependencies = [ - "anstream", - "anstyle", - "clap_lex", - "strsim", -] +checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] -name = "clap_derive" -version = "4.5.5" +name = "async-recursion" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c780290ccf4fb26629baa7a1081e68ced113f1d3ec302fa5948f1c381ebf06c6" +checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ - "heck", "proc-macro2", "quote", "syn 2.0.74", ] [[package]] -name = "clap_lex" -version = "0.7.2" +name = "async-stream" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" +checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51" +dependencies = [ + "async-stream-impl", + "futures-core", + "pin-project-lite", +] [[package]] -name = "coins-bip32" -version = "0.8.7" +name = "async-stream-impl" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b6be4a5df2098cd811f3194f64ddb96c267606bffd9689ac7b0160097b01ad3" +checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ - "bs58", - "coins-core", - "digest 0.10.7", - "hmac", - "k256", - "serde", - "sha2", - "thiserror", + "proc-macro2", + "quote", + "syn 2.0.74", ] [[package]] -name = "coins-bip39" -version = "0.8.7" +name = "async-trait" +version = "0.1.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3db8fba409ce3dc04f7d804074039eb68b960b0829161f8e06c95fea3f122528" +checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107" dependencies = [ - "bitvec", - "coins-bip32", - "hmac", - "once_cell", - "pbkdf2 0.12.2", - "rand", - "sha2", - "thiserror", + "proc-macro2", + "quote", + "syn 2.0.74", ] [[package]] -name = "coins-core" -version = "0.8.7" +name = "auto_impl" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5286a0843c21f8367f7be734f89df9b822e0321d8bcce8d6e735aadff7d74979" +checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" dependencies = [ - "base64 0.21.7", - "bech32", - "bs58", - "digest 0.10.7", - "generic-array", - "hex", - "ripemd", - "serde", - "serde_derive", - "sha2", - "sha3", - "thiserror", + "proc-macro2", + "quote", + "syn 2.0.74", ] [[package]] -name = "colorchoice" -version = "1.0.2" +name = "autocfg" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] -name = "const-hex" -version = "1.12.0" +name = "backtrace" +version = "0.3.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94fb8a24a26d37e1ffd45343323dc9fe6654ceea44c12f2fcb3d7ac29e610bc6" +checksum = "5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a" dependencies = [ + "addr2line", + "cc", "cfg-if", - "cpufeatures", - "hex", - "proptest", - "serde", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", ] [[package]] -name = "const-oid" -version = "0.9.6" +name = "base16ct" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" [[package]] -name = "constant_time_eq" -version = "0.1.5" +name = "base64" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] -name = "convert_case" -version = "0.4.0" +name = "base64ct" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" [[package]] -name = "convert_case" -version = "0.6.0" +name = "bindgen" +version = "0.69.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca" +checksum = "a00dc851838a2120612785d195287475a3ac45514741da670b735818822129a0" dependencies = [ - "unicode-segmentation", + "bitflags", + "cexpr", + "clang-sys", + "itertools 0.12.1", + "lazy_static", + "lazycell", + "log", + "prettyplease", + "proc-macro2", + "quote", + "regex", + "rustc-hash 1.1.0", + "shlex", + "syn 2.0.74", + "which", ] [[package]] -name = "core-foundation" -version = "0.9.4" +name = "bit-set" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" dependencies = [ - "core-foundation-sys", - "libc", + "bit-vec", ] [[package]] -name = "core-foundation-sys" -version = "0.8.7" +name = "bit-vec" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" +checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" [[package]] -name = "cpufeatures" -version = "0.2.13" +name = "bitflags" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51e852e6dc9a5bed1fae92dd2375037bf2b768725bf3be87811edee3249d09ad" -dependencies = [ - "libc", -] +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" [[package]] -name = "crc32fast" -version = "1.4.2" +name = "bitvec" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" dependencies = [ - "cfg-if", + "funty", + "radium", + "tap", + "wyz", ] [[package]] -name = "crossbeam-deque" -version = "0.8.5" +name = "block-buffer" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" dependencies = [ - "crossbeam-epoch", - "crossbeam-utils", + "generic-array", ] [[package]] -name = "crossbeam-epoch" -version = "0.9.18" +name = "blst" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" +checksum = "4378725facc195f1a538864863f6de233b500a8862747e7f165078a419d5e874" dependencies = [ - "crossbeam-utils", + "cc", + "glob", + "threadpool", + "zeroize", ] [[package]] -name = "crossbeam-utils" -version = "0.8.20" +name = "bumpalo" +version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" [[package]] -name = "crunchy" -version = "0.2.2" +name = "byte-slice-cast" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" +checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" [[package]] -name = "crypto-bigint" -version = "0.5.5" +name = "byteorder" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" -dependencies = [ - "generic-array", - "rand_core", - "subtle", - "zeroize", -] +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] -name = "crypto-common" -version = "0.1.6" +name = "bytes" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50" dependencies = [ - "generic-array", - "typenum", + "serde", ] [[package]] -name = "ctr" -version = "0.9.2" +name = "c-kzg" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" +checksum = "f0307f72feab3300336fb803a57134159f6e20139af1357f36c54cb90d8e8928" dependencies = [ - "cipher", + "blst", + "cc", + "glob", + "hex", + "libc", + "once_cell", + "serde", ] [[package]] -name = "data-encoding" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" +name = "cartesi-dave-arithmetic" +version = "0.1.0" [[package]] -name = "der" -version = "0.7.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" +name = "cartesi-dave-merkle" +version = "0.1.0" dependencies = [ - "const-oid", - "zeroize", + "alloy", + "hex", + "ruint", + "sha3", + "thiserror", ] [[package]] -name = "deranged" -version = "0.3.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" +name = "cartesi-machine" +version = "0.18.1" dependencies = [ - "powerfmt", + "cartesi-machine-sys", + "hex", + "thiserror", ] [[package]] -name = "derivative" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +name = "cartesi-machine-sys" +version = "0.18.1" dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", + "bindgen", + "bytes", + "cfg-if", + "hex-literal", + "link-cplusplus", + "reqwest", + "sha1", ] [[package]] -name = "derive_more" -version = "0.99.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce" +name = "cartesi-prt-compute" +version = "0.1.0" dependencies = [ - "convert_case 0.4.0", - "proc-macro2", - "quote", - "rustc_version 0.4.0", - "syn 2.0.74", + "alloy", + "anyhow", + "cartesi-prt-core", + "clap", + "env_logger", + "log", + "tokio", ] [[package]] -name = "digest" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" +name = "cartesi-prt-contracts" +version = "0.1.0" dependencies = [ - "generic-array", + "alloy", ] [[package]] -name = "digest" -version = "0.10.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +name = "cartesi-prt-core" +version = "0.1.0" dependencies = [ - "block-buffer", - "const-oid", - "crypto-common", - "subtle", + "alloy", + "anyhow", + "async-recursion", + "async-trait", + "cartesi-dave-arithmetic", + "cartesi-dave-merkle", + "cartesi-machine", + "cartesi-prt-contracts", + "clap", + "clap_derive", + "hex", + "log", + "num-traits", + "ruint", + "sha3", + "thiserror", ] [[package]] -name = "dirs" -version = "5.0.1" +name = "cc" +version = "1.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" +checksum = "5fb8dd288a69fc53a1996d7ecfbf4a20d59065bff137ce7e56bbd620de191189" dependencies = [ - "dirs-sys", + "shlex", ] [[package]] -name = "dirs-next" -version = "2.0.0" +name = "cexpr" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" +checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" dependencies = [ - "cfg-if", - "dirs-sys-next", + "nom", ] [[package]] -name = "dirs-sys" -version = "0.4.1" +name = "cfg-if" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" -dependencies = [ - "libc", - "option-ext", - "redox_users", - "windows-sys 0.48.0", -] +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] -name = "dirs-sys-next" -version = "0.1.2" +name = "clang-sys" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" +checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" dependencies = [ + "glob", "libc", - "redox_users", - "winapi", + "libloading", ] [[package]] -name = "dunce" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" - -[[package]] -name = "ecdsa" -version = "0.16.9" +name = "clap" +version = "4.5.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" +checksum = "3e5a21b8495e732f1b3c364c9949b201ca7bae518c502c80256c96ad79eaf6ac" dependencies = [ - "der", - "digest 0.10.7", - "elliptic-curve", - "rfc6979", - "signature", - "spki", + "clap_builder", + "clap_derive", ] [[package]] -name = "either" -version = "1.13.0" +name = "clap_builder" +version = "4.5.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" +checksum = "8cf2dd12af7a047ad9d6da2b6b249759a22a7abc0f474c1dae1777afa4b21a73" +dependencies = [ + "anstream", + "anstyle", + "clap_lex", + "strsim", +] [[package]] -name = "elliptic-curve" -version = "0.13.8" +name = "clap_derive" +version = "4.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" +checksum = "501d359d5f3dcaf6ecdeee48833ae73ec6e42723a1e52419c79abf9507eec0a0" dependencies = [ - "base16ct", - "crypto-bigint", - "digest 0.10.7", - "ff", - "generic-array", - "group", - "pkcs8", - "rand_core", - "sec1", - "subtle", - "zeroize", + "heck", + "proc-macro2", + "quote", + "syn 2.0.74", ] [[package]] -name = "ena" -version = "0.14.3" +name = "clap_lex" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d248bdd43ce613d87415282f69b9bb99d947d290b10962dd6c56233312c2ad5" -dependencies = [ - "log", -] +checksum = "1462739cb27611015575c0c11df5df7601141071f07518d56fcc1be504cbec97" [[package]] -name = "encoding_rs" -version = "0.8.34" +name = "colorchoice" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" -dependencies = [ - "cfg-if", -] +checksum = "d3fd119d74b830634cea2a0f58bbd0d54540518a14397557951e79340abc28c0" [[package]] -name = "enr" -version = "0.10.0" +name = "const-hex" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a3d8dc56e02f954cac8eb489772c552c473346fc34f67412bb6244fd647f7e4" +checksum = "94fb8a24a26d37e1ffd45343323dc9fe6654ceea44c12f2fcb3d7ac29e610bc6" dependencies = [ - "base64 0.21.7", - "bytes", + "cfg-if", + "cpufeatures", "hex", - "k256", - "log", - "rand", - "rlp", + "proptest", "serde", - "sha3", - "zeroize", ] [[package]] -name = "env_logger" -version = "0.10.2" +name = "const-oid" +version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + +[[package]] +name = "core-foundation" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" dependencies = [ - "humantime", - "is-terminal", - "log", - "regex", - "termcolor", + "core-foundation-sys", + "libc", ] [[package]] -name = "equivalent" -version = "1.0.1" +name = "core-foundation-sys" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] -name = "errno" -version = "0.3.9" +name = "cpufeatures" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" +checksum = "51e852e6dc9a5bed1fae92dd2375037bf2b768725bf3be87811edee3249d09ad" dependencies = [ "libc", - "windows-sys 0.52.0", ] [[package]] -name = "eth-keystore" -version = "0.5.0" +name = "crossbeam-utils" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fda3bf123be441da5260717e0661c25a2fd9cb2b2c1d20bf2e05580047158ab" -dependencies = [ - "aes", - "ctr", - "digest 0.10.7", - "hex", - "hmac", - "pbkdf2 0.11.0", - "rand", - "scrypt", - "serde", - "serde_json", - "sha2", - "sha3", - "thiserror", - "uuid", -] +checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" [[package]] -name = "ethabi" -version = "18.0.0" +name = "crunchy" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" + +[[package]] +name = "crypto-bigint" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7413c5f74cc903ea37386a8965a936cbeb334bd270862fdece542c1b2dcbc898" +checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" dependencies = [ - "ethereum-types", - "hex", - "once_cell", - "regex", - "serde", - "serde_json", - "sha3", - "thiserror", - "uint", + "generic-array", + "rand_core", + "subtle", + "zeroize", ] [[package]] -name = "ethbloom" -version = "0.13.0" +name = "crypto-common" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c22d4b5885b6aa2fe5e8b9329fb8d232bf739e434e6b87347c63bdd00c120f60" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" dependencies = [ - "crunchy", - "fixed-hash", - "impl-codec", - "impl-rlp", - "impl-serde", - "scale-info", - "tiny-keccak", + "generic-array", + "typenum", ] [[package]] -name = "ethereum-types" -version = "0.14.1" +name = "dashmap" +version = "6.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02d215cbf040552efcbe99a38372fe80ab9d00268e20012b79fcd0f073edd8ee" +checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf" dependencies = [ - "ethbloom", - "fixed-hash", - "impl-codec", - "impl-rlp", - "impl-serde", - "primitive-types", - "scale-info", - "uint", + "cfg-if", + "crossbeam-utils", + "hashbrown", + "lock_api", + "once_cell", + "parking_lot_core", ] [[package]] -name = "ethers" -version = "2.0.14" +name = "der" +version = "0.7.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "816841ea989f0c69e459af1cf23a6b0033b19a55424a1ea3a30099becdb8dec0" +checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" dependencies = [ - "ethers-addressbook", - "ethers-contract", - "ethers-core", - "ethers-etherscan", - "ethers-middleware", - "ethers-providers", - "ethers-signers", - "ethers-solc", + "const-oid", + "zeroize", ] [[package]] -name = "ethers-addressbook" -version = "2.0.14" +name = "derivative" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5495afd16b4faa556c3bba1f21b98b4983e53c1755022377051a975c3b021759" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" dependencies = [ - "ethers-core", - "once_cell", - "serde", - "serde_json", + "proc-macro2", + "quote", + "syn 1.0.109", ] [[package]] -name = "ethers-contract" -version = "2.0.14" +name = "derive_more" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fceafa3578c836eeb874af87abacfb041f92b4da0a78a5edd042564b8ecdaaa" +checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05" dependencies = [ - "const-hex", - "ethers-contract-abigen", - "ethers-contract-derive", - "ethers-core", - "ethers-providers", - "futures-util", - "once_cell", - "pin-project", - "serde", - "serde_json", - "thiserror", + "derive_more-impl", ] [[package]] -name = "ethers-contract-abigen" -version = "2.0.14" +name = "derive_more-impl" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04ba01fbc2331a38c429eb95d4a570166781f14290ef9fdb144278a90b5a739b" +checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" dependencies = [ - "Inflector", - "const-hex", - "dunce", - "ethers-core", - "ethers-etherscan", - "eyre", - "prettyplease", "proc-macro2", "quote", - "regex", - "reqwest 0.11.27", - "serde", - "serde_json", "syn 2.0.74", - "toml", - "walkdir", + "unicode-xid", ] [[package]] -name = "ethers-contract-derive" -version = "2.0.14" +name = "digest" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87689dcabc0051cde10caaade298f9e9093d65f6125c14575db3fd8c669a168f" +checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" dependencies = [ - "Inflector", - "const-hex", - "ethers-contract-abigen", - "ethers-core", - "proc-macro2", - "quote", - "serde_json", - "syn 2.0.74", + "generic-array", ] [[package]] -name = "ethers-core" -version = "2.0.14" +name = "digest" +version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82d80cc6ad30b14a48ab786523af33b37f28a8623fc06afd55324816ef18fb1f" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ - "arrayvec", - "bytes", - "cargo_metadata", - "chrono", - "const-hex", - "elliptic-curve", - "ethabi", - "generic-array", - "k256", - "num_enum", - "once_cell", - "open-fastrlp", - "rand", - "rlp", - "serde", - "serde_json", - "strum", - "syn 2.0.74", - "tempfile", - "thiserror", - "tiny-keccak", - "unicode-xid", + "block-buffer", + "const-oid", + "crypto-common", + "subtle", ] [[package]] -name = "ethers-etherscan" -version = "2.0.14" +name = "dunce" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" + +[[package]] +name = "ecdsa" +version = "0.16.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e79e5973c26d4baf0ce55520bd732314328cabe53193286671b47144145b9649" +checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" dependencies = [ - "chrono", - "ethers-core", - "reqwest 0.11.27", - "semver 1.0.23", - "serde", - "serde_json", - "thiserror", - "tracing", + "der", + "digest 0.10.7", + "elliptic-curve", + "rfc6979", + "signature", + "spki", ] [[package]] -name = "ethers-middleware" -version = "2.0.14" +name = "either" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48f9fdf09aec667c099909d91908d5eaf9be1bd0e2500ba4172c1d28bfaa43de" -dependencies = [ - "async-trait", - "auto_impl", - "ethers-contract", - "ethers-core", - "ethers-etherscan", - "ethers-providers", - "ethers-signers", - "futures-channel", - "futures-locks", - "futures-util", - "instant", - "reqwest 0.11.27", - "serde", - "serde_json", - "thiserror", - "tokio", - "tracing", - "tracing-futures", - "url", -] +checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" [[package]] -name = "ethers-providers" -version = "2.0.14" +name = "elliptic-curve" +version = "0.13.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6434c9a33891f1effc9c75472e12666db2fa5a0fec4b29af6221680a6fe83ab2" +checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" dependencies = [ - "async-trait", - "auto_impl", - "base64 0.21.7", - "bytes", - "const-hex", - "enr", - "ethers-core", - "futures-core", - "futures-timer", - "futures-util", - "hashers", - "http 0.2.12", - "instant", - "jsonwebtoken", - "once_cell", - "pin-project", - "reqwest 0.11.27", - "serde", - "serde_json", - "thiserror", - "tokio", - "tokio-tungstenite", - "tracing", - "tracing-futures", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "ws_stream_wasm", + "base16ct", + "crypto-bigint", + "digest 0.10.7", + "ff", + "generic-array", + "group", + "pkcs8", + "rand_core", + "sec1", + "subtle", + "zeroize", ] [[package]] -name = "ethers-signers" -version = "2.0.14" +name = "env_filter" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "228875491c782ad851773b652dd8ecac62cda8571d3bc32a5853644dd26766c2" +checksum = "4f2c92ceda6ceec50f43169f9ee8424fe2db276791afde7b2cd8bc084cb376ab" dependencies = [ - "async-trait", - "coins-bip32", - "coins-bip39", - "const-hex", - "elliptic-curve", - "eth-keystore", - "ethers-core", - "rand", - "sha2", - "thiserror", - "tracing", + "log", + "regex", ] [[package]] -name = "ethers-solc" -version = "2.0.14" +name = "env_logger" +version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66244a771d9163282646dbeffe0e6eca4dda4146b6498644e678ac6089b11edd" +checksum = "e13fa619b91fb2381732789fc5de83b45675e882f66623b7d8cb4f643017018d" dependencies = [ - "cfg-if", - "const-hex", - "dirs", - "dunce", - "ethers-core", - "glob", - "home", - "md-5", - "num_cpus", - "once_cell", - "path-slash", - "rayon", - "regex", - "semver 1.0.23", - "serde", - "serde_json", - "solang-parser", - "svm-rs", - "thiserror", - "tiny-keccak", - "tokio", - "tracing", - "walkdir", - "yansi", + "anstream", + "anstyle", + "env_filter", + "humantime", + "log", ] [[package]] -name = "eyre" -version = "0.6.12" +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 = "7cd915d99f24784cdc19fd37ef22b97e3ff0ae756c7e492e9fbfe897d61e2aec" +checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" dependencies = [ - "indenter", - "once_cell", + "libc", + "windows-sys 0.52.0", ] [[package]] @@ -1522,22 +1349,6 @@ dependencies = [ "static_assertions", ] -[[package]] -name = "fixedbitset" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" - -[[package]] -name = "flate2" -version = "1.0.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f211bbe8e69bbd0cfdea405084f128ae8b4aaa6b0b522fc8f2b009084797920" -dependencies = [ - "crc32fast", - "miniz_oxide", -] - [[package]] name = "fnv" version = "1.0.7" @@ -1568,50 +1379,6 @@ dependencies = [ "percent-encoding", ] -[[package]] -name = "foundry-compilers" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c9f9741733af2e2ff11f5671d57ba421948ca26addf4086e1d1c849f19b73dc" -dependencies = [ - "alloy-json-abi", - "alloy-primitives", - "cfg-if", - "const-hex", - "dirs", - "dunce", - "glob", - "home", - "md-5", - "memmap2", - "num_cpus", - "once_cell", - "path-slash", - "rayon", - "regex", - "semver 1.0.23", - "serde", - "serde_json", - "solang-parser", - "svm-rs", - "thiserror", - "tiny-keccak", - "tokio", - "tracing", - "walkdir", - "yansi", -] - -[[package]] -name = "fs2" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213" -dependencies = [ - "libc", - "winapi", -] - [[package]] name = "funty" version = "2.0.0" @@ -1666,16 +1433,6 @@ version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" -[[package]] -name = "futures-locks" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45ec6fe3675af967e67c5536c0b9d44e34e6c52f86bedc4ea49c5317b8e94d06" -dependencies = [ - "futures-channel", - "futures-task", -] - [[package]] name = "futures-macro" version = "0.3.30" @@ -1699,16 +1456,6 @@ version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" -[[package]] -name = "futures-timer" -version = "3.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" -dependencies = [ - "gloo-timers", - "send_wrapper 0.4.0", -] - [[package]] name = "futures-util" version = "0.3.30" @@ -1728,13 +1475,10 @@ dependencies = [ ] [[package]] -name = "fxhash" -version = "0.2.1" +name = "futures-utils-wasm" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" -dependencies = [ - "byteorder", -] +checksum = "42012b0f064e01aa58b545fe3727f90f7dd4020f4a3ea735b50344965f5a57e9" [[package]] name = "generic-array" @@ -1770,18 +1514,6 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" -[[package]] -name = "gloo-timers" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c" -dependencies = [ - "futures-channel", - "futures-core", - "js-sys", - "wasm-bindgen", -] - [[package]] name = "group" version = "0.13.0" @@ -1793,57 +1525,14 @@ dependencies = [ "subtle", ] -[[package]] -name = "h2" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" -dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http 0.2.12", - "indexmap", - "slab", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "h2" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa82e28a107a8cc405f0839610bdc9b15f1e25ec7d696aa5cf173edbcb1486ab" -dependencies = [ - "atomic-waker", - "bytes", - "fnv", - "futures-core", - "futures-sink", - "http 1.1.0", - "indexmap", - "slab", - "tokio", - "tokio-util", - "tracing", -] - [[package]] name = "hashbrown" version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" - -[[package]] -name = "hashers" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2bca93b15ea5a746f220e56587f71e73c6165eab783df9e26590069953e3c30" dependencies = [ - "fxhash", + "ahash", + "allocator-api2", ] [[package]] @@ -1891,17 +1580,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "http" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - [[package]] name = "http" version = "1.1.0" @@ -1913,17 +1591,6 @@ dependencies = [ "itoa", ] -[[package]] -name = "http-body" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" -dependencies = [ - "bytes", - "http 0.2.12", - "pin-project-lite", -] - [[package]] name = "http-body" version = "1.0.1" @@ -1931,7 +1598,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ "bytes", - "http 1.1.0", + "http", ] [[package]] @@ -1942,53 +1609,23 @@ checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" dependencies = [ "bytes", "futures-util", - "http 1.1.0", - "http-body 1.0.1", - "pin-project-lite", -] - -[[package]] -name = "httparse" -version = "1.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9" - -[[package]] -name = "httpdate" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" - -[[package]] -name = "humantime" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" - -[[package]] -name = "hyper" -version = "0.14.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a152ddd61dfaec7273fe8419ab357f33aee0d914c5f4efbf0d96fa749eea5ec9" -dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "h2 0.3.26", - "http 0.2.12", - "http-body 0.4.6", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "socket2", - "tokio", - "tower-service", - "tracing", - "want", + "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 = "humantime" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" + [[package]] name = "hyper" version = "1.4.1" @@ -1998,9 +1635,8 @@ dependencies = [ "bytes", "futures-channel", "futures-util", - "h2 0.4.5", - "http 1.1.0", - "http-body 1.0.1", + "http", + "http-body", "httparse", "itoa", "pin-project-lite", @@ -2009,20 +1645,6 @@ dependencies = [ "want", ] -[[package]] -name = "hyper-rustls" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" -dependencies = [ - "futures-util", - "http 0.2.12", - "hyper 0.14.30", - "rustls 0.21.12", - "tokio", - "tokio-rustls 0.24.1", -] - [[package]] name = "hyper-rustls" version = "0.27.2" @@ -2030,14 +1652,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5ee4be2c948921a1a5320b629c4193916ed787a7f7f293fd3f7f5a6c9de74155" dependencies = [ "futures-util", - "http 1.1.0", - "hyper 1.4.1", + "http", + "hyper", "hyper-util", - "rustls 0.23.12", + "rustls", "rustls-pki-types", "tokio", - "tokio-rustls 0.26.0", + "tokio-rustls", "tower-service", + "webpki-roots", ] [[package]] @@ -2048,7 +1671,7 @@ checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" dependencies = [ "bytes", "http-body-util", - "hyper 1.4.1", + "hyper", "hyper-util", "native-tls", "tokio", @@ -2065,9 +1688,9 @@ dependencies = [ "bytes", "futures-channel", "futures-util", - "http 1.1.0", - "http-body 1.0.1", - "hyper 1.4.1", + "http", + "http-body", + "hyper", "pin-project-lite", "socket2", "tokio", @@ -2095,24 +1718,6 @@ dependencies = [ "parity-scale-codec", ] -[[package]] -name = "impl-rlp" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f28220f89297a075ddc7245cd538076ee98b01f2a9c23a53a4f1105d5a322808" -dependencies = [ - "rlp", -] - -[[package]] -name = "impl-serde" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc88fc67028ae3db0c853baa36269d398d5f45b6982f95549ff5def78c935cd" -dependencies = [ - "serde", -] - [[package]] name = "impl-trait-for-tuples" version = "0.2.2" @@ -2124,12 +1729,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "indenter" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" - [[package]] name = "indexmap" version = "2.4.0" @@ -2140,41 +1739,12 @@ dependencies = [ "hashbrown", ] -[[package]] -name = "inout" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" -dependencies = [ - "generic-array", -] - -[[package]] -name = "instant" -version = "0.1.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" -dependencies = [ - "cfg-if", -] - [[package]] name = "ipnet" version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" -[[package]] -name = "is-terminal" -version = "0.4.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b" -dependencies = [ - "hermit-abi", - "libc", - "windows-sys 0.52.0", -] - [[package]] name = "is_terminal_polyfill" version = "1.70.1" @@ -2192,18 +1762,18 @@ dependencies = [ [[package]] name = "itertools" -version = "0.11.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" dependencies = [ "either", ] [[package]] name = "itertools" -version = "0.12.1" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" dependencies = [ "either", ] @@ -2214,15 +1784,6 @@ version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" -[[package]] -name = "jobserver" -version = "0.1.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" -dependencies = [ - "libc", -] - [[package]] name = "js-sys" version = "0.3.70" @@ -2232,20 +1793,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "jsonwebtoken" -version = "8.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378" -dependencies = [ - "base64 0.21.7", - "pem", - "ring 0.16.20", - "serde", - "serde_json", - "simple_asn1", -] - [[package]] name = "k256" version = "0.13.3" @@ -2257,7 +1804,6 @@ dependencies = [ "elliptic-curve", "once_cell", "sha2", - "signature", ] [[package]] @@ -2279,36 +1825,6 @@ dependencies = [ "sha3-asm", ] -[[package]] -name = "lalrpop" -version = "0.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55cb077ad656299f160924eb2912aa147d7339ea7d69e1b5517326fdcec3c1ca" -dependencies = [ - "ascii-canvas", - "bit-set", - "ena", - "itertools 0.11.0", - "lalrpop-util", - "petgraph", - "regex", - "regex-syntax", - "string_cache", - "term", - "tiny-keccak", - "unicode-xid", - "walkdir", -] - -[[package]] -name = "lalrpop-util" -version = "0.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "507460a910eb7b32ee961886ff48539633b788a36b65692b95f225b844c82553" -dependencies = [ - "regex-automata", -] - [[package]] name = "lazy_static" version = "1.5.0" @@ -2323,9 +1839,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.155" +version = "0.2.158" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" +checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439" [[package]] name = "libloading" @@ -2343,16 +1859,6 @@ version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" -[[package]] -name = "libredox" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" -dependencies = [ - "bitflags 2.6.0", - "libc", -] - [[package]] name = "link-cplusplus" version = "1.0.9" @@ -2385,13 +1891,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" [[package]] -name = "md-5" -version = "0.10.6" +name = "lru" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" +checksum = "37ee39891760e7d94734f6f63fedc29a2e4a152f836120753a72503f09fcf904" dependencies = [ - "cfg-if", - "digest 0.10.7", + "hashbrown", ] [[package]] @@ -2400,15 +1905,6 @@ version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" -[[package]] -name = "memmap2" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe751422e4a8caa417e13c3ea66452215d7d63e19e604f4980461212f3ae1322" -dependencies = [ - "libc", -] - [[package]] name = "mime" version = "0.3.17" @@ -2459,12 +1955,6 @@ dependencies = [ "tempfile", ] -[[package]] -name = "new_debug_unreachable" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" - [[package]] name = "nom" version = "7.1.3" @@ -2485,12 +1975,6 @@ dependencies = [ "num-traits", ] -[[package]] -name = "num-conv" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" - [[package]] name = "num-integer" version = "0.1.46" @@ -2535,7 +2019,6 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" dependencies = [ - "proc-macro-crate", "proc-macro2", "quote", "syn 2.0.74", @@ -2556,38 +2039,13 @@ version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" -[[package]] -name = "open-fastrlp" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "786393f80485445794f6043fd3138854dd109cc6c4bd1a6383db304c9ce9b9ce" -dependencies = [ - "arrayvec", - "auto_impl", - "bytes", - "ethereum-types", - "open-fastrlp-derive", -] - -[[package]] -name = "open-fastrlp-derive" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "003b2be5c6c53c1cfeb0a238b8a1c3915cd410feb684457a36c10038f764bb1c" -dependencies = [ - "bytes", - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "openssl" version = "0.10.66" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1" dependencies = [ - "bitflags 2.6.0", + "bitflags", "cfg-if", "foreign-types", "libc", @@ -2625,12 +2083,6 @@ dependencies = [ "vcpkg", ] -[[package]] -name = "option-ext" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" - [[package]] name = "parity-scale-codec" version = "3.6.12" @@ -2646,180 +2098,61 @@ dependencies = [ ] [[package]] -name = "parity-scale-codec-derive" -version = "3.6.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d830939c76d294956402033aee57a6da7b438f2294eb94864c37b0569053a42c" -dependencies = [ - "proc-macro-crate", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "parking_lot" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" -dependencies = [ - "lock_api", - "parking_lot_core", -] - -[[package]] -name = "parking_lot_core" -version = "0.9.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall", - "smallvec", - "windows-targets 0.52.6", -] - -[[package]] -name = "password-hash" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7676374caaee8a325c9e7a2ae557f216c5563a171d6997b0ef8a65af35147700" -dependencies = [ - "base64ct", - "rand_core", - "subtle", -] - -[[package]] -name = "paste" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" - -[[package]] -name = "path-slash" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e91099d4268b0e11973f036e885d652fb0b21fedcf69738c627f94db6a44f42" - -[[package]] -name = "pbkdf2" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" -dependencies = [ - "digest 0.10.7", - "hmac", - "password-hash", - "sha2", -] - -[[package]] -name = "pbkdf2" -version = "0.12.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" -dependencies = [ - "digest 0.10.7", - "hmac", -] - -[[package]] -name = "pem" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8" -dependencies = [ - "base64 0.13.1", -] - -[[package]] -name = "percent-encoding" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" - -[[package]] -name = "pest" -version = "2.7.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd53dff83f26735fdc1ca837098ccf133605d794cdae66acfc2bfac3ec809d95" -dependencies = [ - "memchr", - "thiserror", - "ucd-trie", -] - -[[package]] -name = "petgraph" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" -dependencies = [ - "fixedbitset", - "indexmap", -] - -[[package]] -name = "pharos" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9567389417feee6ce15dd6527a8a1ecac205ef62c2932bcf3d9f6fc5b78b414" -dependencies = [ - "futures", - "rustc_version 0.4.0", -] - -[[package]] -name = "phf" -version = "0.11.2" +name = "parity-scale-codec-derive" +version = "3.6.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" +checksum = "d830939c76d294956402033aee57a6da7b438f2294eb94864c37b0569053a42c" dependencies = [ - "phf_macros", - "phf_shared 0.11.2", + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 1.0.109", ] [[package]] -name = "phf_generator" -version = "0.11.2" +name = "parking_lot" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" dependencies = [ - "phf_shared 0.11.2", - "rand", + "lock_api", + "parking_lot_core", ] [[package]] -name = "phf_macros" -version = "0.11.2" +name = "parking_lot_core" +version = "0.9.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ - "phf_generator", - "phf_shared 0.11.2", - "proc-macro2", - "quote", - "syn 2.0.74", + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-targets 0.52.6", ] [[package]] -name = "phf_shared" -version = "0.10.0" +name = "paste" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" -dependencies = [ - "siphasher", -] +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" + +[[package]] +name = "percent-encoding" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] -name = "phf_shared" -version = "0.11.2" +name = "pest" +version = "2.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" +checksum = "cd53dff83f26735fdc1ca837098ccf133605d794cdae66acfc2bfac3ec809d95" dependencies = [ - "siphasher", + "memchr", + "thiserror", + "ucd-trie", ] [[package]] @@ -2870,12 +2203,6 @@ version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" -[[package]] -name = "powerfmt" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" - [[package]] name = "ppv-lite86" version = "0.2.20" @@ -2885,12 +2212,6 @@ dependencies = [ "zerocopy", ] -[[package]] -name = "precomputed-hash" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" - [[package]] name = "prettyplease" version = "0.2.20" @@ -2909,9 +2230,6 @@ checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" dependencies = [ "fixed-hash", "impl-codec", - "impl-rlp", - "impl-serde", - "scale-info", "uint", ] @@ -2921,7 +2239,29 @@ version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" dependencies = [ - "toml_edit 0.21.1", + "toml_edit", +] + +[[package]] +name = "proc-macro-error-attr2" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5" +dependencies = [ + "proc-macro2", + "quote", +] + +[[package]] +name = "proc-macro-error2" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802" +dependencies = [ + "proc-macro-error-attr2", + "proc-macro2", + "quote", + "syn 2.0.74", ] [[package]] @@ -2941,7 +2281,7 @@ checksum = "b4c2511913b88df1637da85cc8d96ec8e43a3f8bb8ccb71ee1ac240d6f3df58d" dependencies = [ "bit-set", "bit-vec", - "bitflags 2.6.0", + "bitflags", "lazy_static", "num-traits", "rand", @@ -2959,6 +2299,54 @@ version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" +[[package]] +name = "quinn" +version = "0.11.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c7c5fdde3cdae7203427dc4f0a68fe0ed09833edc525a03456b153b79828684" +dependencies = [ + "bytes", + "pin-project-lite", + "quinn-proto", + "quinn-udp", + "rustc-hash 2.0.0", + "rustls", + "socket2", + "thiserror", + "tokio", + "tracing", +] + +[[package]] +name = "quinn-proto" +version = "0.11.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fadfaed2cd7f389d0161bb73eeb07b7b78f8691047a6f3e73caaeae55310a4a6" +dependencies = [ + "bytes", + "rand", + "ring", + "rustc-hash 2.0.0", + "rustls", + "slab", + "thiserror", + "tinyvec", + "tracing", +] + +[[package]] +name = "quinn-udp" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fe68c2e9e1a1234e218683dbdf9f9dfcb094113c5ac2b938dfcb9bab4c4140b" +dependencies = [ + "libc", + "once_cell", + "socket2", + "tracing", + "windows-sys 0.59.0", +] + [[package]] name = "quote" version = "1.0.36" @@ -3013,44 +2401,13 @@ dependencies = [ "rand_core", ] -[[package]] -name = "rayon" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" -dependencies = [ - "either", - "rayon-core", -] - -[[package]] -name = "rayon-core" -version = "1.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" -dependencies = [ - "crossbeam-deque", - "crossbeam-utils", -] - [[package]] name = "redox_syscall" version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4" dependencies = [ - "bitflags 2.6.0", -] - -[[package]] -name = "redox_users" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891" -dependencies = [ - "getrandom", - "libredox", - "thiserror", + "bitflags", ] [[package]] @@ -3082,65 +2439,22 @@ version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" -[[package]] -name = "reqwest" -version = "0.11.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" -dependencies = [ - "base64 0.21.7", - "bytes", - "encoding_rs", - "futures-core", - "futures-util", - "h2 0.3.26", - "http 0.2.12", - "http-body 0.4.6", - "hyper 0.14.30", - "hyper-rustls 0.24.2", - "ipnet", - "js-sys", - "log", - "mime", - "once_cell", - "percent-encoding", - "pin-project-lite", - "rustls 0.21.12", - "rustls-pemfile 1.0.4", - "serde", - "serde_json", - "serde_urlencoded", - "sync_wrapper 0.1.2", - "system-configuration", - "tokio", - "tokio-rustls 0.24.1", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "webpki-roots", - "winreg 0.50.0", -] - [[package]] name = "reqwest" version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c7d6d2a27d57148378eb5e111173f4276ad26340ecc5c49a4a2152167a2d6a37" dependencies = [ - "base64 0.22.1", + "base64", "bytes", - "encoding_rs", "futures-channel", "futures-core", "futures-util", - "h2 0.4.5", - "http 1.1.0", - "http-body 1.0.1", + "http", + "http-body", "http-body-util", - "hyper 1.4.1", - "hyper-rustls 0.27.2", + "hyper", + "hyper-rustls", "hyper-tls", "hyper-util", "ipnet", @@ -3151,20 +2465,24 @@ dependencies = [ "once_cell", "percent-encoding", "pin-project-lite", - "rustls-pemfile 2.1.3", + "quinn", + "rustls", + "rustls-pemfile", + "rustls-pki-types", "serde", "serde_json", "serde_urlencoded", - "sync_wrapper 1.0.1", - "system-configuration", + "sync_wrapper", "tokio", "tokio-native-tls", + "tokio-rustls", "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "winreg 0.52.0", + "webpki-roots", + "winreg", ] [[package]] @@ -3177,21 +2495,6 @@ dependencies = [ "subtle", ] -[[package]] -name = "ring" -version = "0.16.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" -dependencies = [ - "cc", - "libc", - "once_cell", - "spin 0.5.2", - "untrusted 0.7.1", - "web-sys", - "winapi", -] - [[package]] name = "ring" version = "0.17.8" @@ -3202,20 +2505,11 @@ dependencies = [ "cfg-if", "getrandom", "libc", - "spin 0.9.8", - "untrusted 0.9.0", + "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 0.10.7", -] - [[package]] name = "rlp" version = "0.5.2" @@ -3223,21 +2517,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" dependencies = [ "bytes", - "rlp-derive", "rustc-hex", ] -[[package]] -name = "rlp-derive" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e33d7b2abe0c340d8797fe2907d3f20d3b5ea5908683618bfe80df7f621f672a" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "ruint" version = "1.12.3" @@ -3280,6 +2562,12 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" +[[package]] +name = "rustc-hash" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152" + [[package]] name = "rustc-hex" version = "2.1.0" @@ -3310,25 +2598,13 @@ version = "0.38.34" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" dependencies = [ - "bitflags 2.6.0", + "bitflags", "errno", "libc", "linux-raw-sys", "windows-sys 0.52.0", ] -[[package]] -name = "rustls" -version = "0.21.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" -dependencies = [ - "log", - "ring 0.17.8", - "rustls-webpki 0.101.7", - "sct", -] - [[package]] name = "rustls" version = "0.23.12" @@ -3336,28 +2612,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c58f8c84392efc0a126acce10fa59ff7b3d2ac06ab451a33f2741989b806b044" dependencies = [ "once_cell", + "ring", "rustls-pki-types", - "rustls-webpki 0.102.6", + "rustls-webpki", "subtle", "zeroize", ] -[[package]] -name = "rustls-pemfile" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" -dependencies = [ - "base64 0.21.7", -] - [[package]] name = "rustls-pemfile" version = "2.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "196fe16b00e106300d3e45ecfcb764fa292a535d7326a29a5875c579c7417425" dependencies = [ - "base64 0.22.1", + "base64", "rustls-pki-types", ] @@ -3367,25 +2635,15 @@ version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc0a2ce646f8655401bb81e7927b812614bd5d91dbc968696be50603510fcaf0" -[[package]] -name = "rustls-webpki" -version = "0.101.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" -dependencies = [ - "ring 0.17.8", - "untrusted 0.9.0", -] - [[package]] name = "rustls-webpki" version = "0.102.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e6b52d4fda176fd835fdc55a835d4a89b8499cad995885a21149d5ad62f852e" dependencies = [ - "ring 0.17.8", + "ring", "rustls-pki-types", - "untrusted 0.9.0", + "untrusted", ] [[package]] @@ -3412,48 +2670,6 @@ version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" -[[package]] -name = "salsa20" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213" -dependencies = [ - "cipher", -] - -[[package]] -name = "same-file" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "scale-info" -version = "2.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eca070c12893629e2cc820a9761bedf6ce1dcddc9852984d1dc734b8bd9bd024" -dependencies = [ - "cfg-if", - "derive_more", - "parity-scale-codec", - "scale-info-derive", -] - -[[package]] -name = "scale-info-derive" -version = "2.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d35494501194174bda522a32605929eefc9ecf7e0a326c26db1fdd85881eb62" -dependencies = [ - "proc-macro-crate", - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "schannel" version = "0.1.23" @@ -3469,28 +2685,6 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" -[[package]] -name = "scrypt" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f9e24d2b632954ded8ab2ef9fea0a0c769ea56ea98bddbafbad22caeeadf45d" -dependencies = [ - "hmac", - "pbkdf2 0.11.0", - "salsa20", - "sha2", -] - -[[package]] -name = "sct" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" -dependencies = [ - "ring 0.17.8", - "untrusted 0.9.0", -] - [[package]] name = "sec1" version = "0.7.3" @@ -3511,7 +2705,7 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.6.0", + "bitflags", "core-foundation", "core-foundation-sys", "libc", @@ -3542,9 +2736,6 @@ name = "semver" version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" -dependencies = [ - "serde", -] [[package]] name = "semver-parser" @@ -3555,18 +2746,6 @@ dependencies = [ "pest", ] -[[package]] -name = "send_wrapper" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f638d531eccd6e23b980caf34876660d38e265409d8e99b397ab71eb3612fad0" - -[[package]] -name = "send_wrapper" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" - [[package]] name = "serde" version = "1.0.207" @@ -3593,18 +2772,9 @@ version = "1.0.124" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "66ad62847a56b3dba58cc891acd13884b9c61138d330c0d7b6181713d4fce38d" dependencies = [ - "itoa", - "memchr", - "ryu", - "serde", -] - -[[package]] -name = "serde_spanned" -version = "0.6.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb5b1b31579f3811bf615c144393417496f152e12ac8b7663bf664f4a815306d" -dependencies = [ + "itoa", + "memchr", + "ryu", "serde", ] @@ -3687,24 +2857,6 @@ dependencies = [ "rand_core", ] -[[package]] -name = "simple_asn1" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085" -dependencies = [ - "num-bigint", - "num-traits", - "thiserror", - "time", -] - -[[package]] -name = "siphasher" -version = "0.3.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" - [[package]] name = "slab" version = "0.4.9" @@ -3730,26 +2882,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "solang-parser" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c425ce1c59f4b154717592f0bdf4715c3a1d55058883622d3157e1f0908a5b26" -dependencies = [ - "itertools 0.11.0", - "lalrpop", - "lalrpop-util", - "phf", - "thiserror", - "unicode-xid", -] - -[[package]] -name = "spin" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" - [[package]] name = "spin" version = "0.9.8" @@ -3772,19 +2904,6 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" -[[package]] -name = "string_cache" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b" -dependencies = [ - "new_debug_unreachable", - "once_cell", - "parking_lot", - "phf_shared 0.10.0", - "precomputed-hash", -] - [[package]] name = "strsim" version = "0.11.1" @@ -3819,26 +2938,6 @@ version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" -[[package]] -name = "svm-rs" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11297baafe5fa0c99d5722458eac6a5e25c01eb1b8e5cd137f54079093daa7a4" -dependencies = [ - "dirs", - "fs2", - "hex", - "once_cell", - "reqwest 0.11.27", - "semver 1.0.23", - "serde", - "serde_json", - "sha2", - "thiserror", - "url", - "zip", -] - [[package]] name = "syn" version = "1.0.109" @@ -3862,10 +2961,16 @@ dependencies = [ ] [[package]] -name = "sync_wrapper" -version = "0.1.2" +name = "syn-solidity" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" +checksum = "f1e1355d44af21638c8e05d45097db6cb5ec2aa3e970c51cb2901605cf3344fa" +dependencies = [ + "paste", + "proc-macro2", + "quote", + "syn 2.0.74", +] [[package]] name = "sync_wrapper" @@ -3873,27 +2978,6 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7065abeca94b6a8a577f9bd45aa0867a2238b74e8eb67cf10d492bc39351394" -[[package]] -name = "system-configuration" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" -dependencies = [ - "bitflags 1.3.2", - "core-foundation", - "system-configuration-sys", -] - -[[package]] -name = "system-configuration-sys" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" -dependencies = [ - "core-foundation-sys", - "libc", -] - [[package]] name = "tap" version = "1.0.1" @@ -3913,26 +2997,6 @@ dependencies = [ "windows-sys 0.59.0", ] -[[package]] -name = "term" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f" -dependencies = [ - "dirs-next", - "rustversion", - "winapi", -] - -[[package]] -name = "termcolor" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" -dependencies = [ - "winapi-util", -] - [[package]] name = "thiserror" version = "1.0.63" @@ -3954,34 +3018,12 @@ dependencies = [ ] [[package]] -name = "time" -version = "0.3.36" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" -dependencies = [ - "deranged", - "itoa", - "num-conv", - "powerfmt", - "serde", - "time-core", - "time-macros", -] - -[[package]] -name = "time-core" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" - -[[package]] -name = "time-macros" -version = "0.2.18" +name = "threadpool" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" +checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" dependencies = [ - "num-conv", - "time-core", + "num_cpus", ] [[package]] @@ -4047,40 +3089,27 @@ dependencies = [ "tokio", ] -[[package]] -name = "tokio-rustls" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" -dependencies = [ - "rustls 0.21.12", - "tokio", -] - [[package]] name = "tokio-rustls" version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" dependencies = [ - "rustls 0.23.12", + "rustls", "rustls-pki-types", "tokio", ] [[package]] -name = "tokio-tungstenite" -version = "0.20.1" +name = "tokio-stream" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c" +checksum = "4f4e6ce100d0eb49a2734f8c0812bcd324cf357d21810932c5df6b96ef2b86f1" dependencies = [ - "futures-util", - "log", - "rustls 0.21.12", + "futures-core", + "pin-project-lite", "tokio", - "tokio-rustls 0.24.1", - "tungstenite", - "webpki-roots", + "tokio-util", ] [[package]] @@ -4096,26 +3125,11 @@ dependencies = [ "tokio", ] -[[package]] -name = "toml" -version = "0.8.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" -dependencies = [ - "serde", - "serde_spanned", - "toml_datetime", - "toml_edit 0.22.20", -] - [[package]] name = "toml_datetime" version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" -dependencies = [ - "serde", -] [[package]] name = "toml_edit" @@ -4128,19 +3142,6 @@ dependencies = [ "winnow 0.5.40", ] -[[package]] -name = "toml_edit" -version = "0.22.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d" -dependencies = [ - "indexmap", - "serde", - "serde_spanned", - "toml_datetime", - "winnow 0.6.18", -] - [[package]] name = "tower" version = "0.4.13" @@ -4154,6 +3155,7 @@ dependencies = [ "tokio", "tower-layer", "tower-service", + "tracing", ] [[package]] @@ -4174,6 +3176,7 @@ 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", @@ -4199,42 +3202,12 @@ dependencies = [ "once_cell", ] -[[package]] -name = "tracing-futures" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" -dependencies = [ - "pin-project", - "tracing", -] - [[package]] name = "try-lock" version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" -[[package]] -name = "tungstenite" -version = "0.20.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9" -dependencies = [ - "byteorder", - "bytes", - "data-encoding", - "http 0.2.12", - "httparse", - "log", - "rand", - "rustls 0.21.12", - "sha1", - "thiserror", - "url", - "utf-8", -] - [[package]] name = "typenum" version = "1.17.0" @@ -4286,24 +3259,12 @@ dependencies = [ "tinyvec", ] -[[package]] -name = "unicode-segmentation" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" - [[package]] name = "unicode-xid" version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" -[[package]] -name = "untrusted" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" - [[package]] name = "untrusted" version = "0.9.0" @@ -4321,28 +3282,12 @@ dependencies = [ "percent-encoding", ] -[[package]] -name = "utf-8" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" - [[package]] name = "utf8parse" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" -[[package]] -name = "uuid" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" -dependencies = [ - "getrandom", - "serde", -] - [[package]] name = "valuable" version = "0.1.0" @@ -4370,16 +3315,6 @@ dependencies = [ "libc", ] -[[package]] -name = "walkdir" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" -dependencies = [ - "same-file", - "winapi-util", -] - [[package]] name = "want" version = "0.3.1" @@ -4474,9 +3409,12 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.25.4" +version = "0.26.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" +checksum = "0bd24728e5af82c6c4ec1b66ac4844bdf8156257fccda846ec58b42cd0cdbe6a" +dependencies = [ + "rustls-pki-types", +] [[package]] name = "which" @@ -4490,37 +3428,6 @@ dependencies = [ "rustix", ] -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - -[[package]] -name = "winapi-util" -version = "0.1.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.48.0" @@ -4687,16 +3594,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "winreg" -version = "0.50.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] - [[package]] name = "winreg" version = "0.52.0" @@ -4707,25 +3604,6 @@ dependencies = [ "windows-sys 0.48.0", ] -[[package]] -name = "ws_stream_wasm" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7999f5f4217fe3818726b66257a4475f71e74ffd190776ad053fa159e50737f5" -dependencies = [ - "async_io_stream", - "futures", - "js-sys", - "log", - "pharos", - "rustc_version 0.4.0", - "send_wrapper 0.6.0", - "thiserror", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - [[package]] name = "wyz" version = "0.5.1" @@ -4735,12 +3613,6 @@ dependencies = [ "tap", ] -[[package]] -name = "yansi" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" - [[package]] name = "zerocopy" version = "0.7.35" @@ -4781,52 +3653,3 @@ dependencies = [ "quote", "syn 2.0.74", ] - -[[package]] -name = "zip" -version = "0.6.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261" -dependencies = [ - "aes", - "byteorder", - "bzip2", - "constant_time_eq", - "crc32fast", - "crossbeam-utils", - "flate2", - "hmac", - "pbkdf2 0.11.0", - "sha1", - "time", - "zstd", -] - -[[package]] -name = "zstd" -version = "0.11.2+zstd.1.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4" -dependencies = [ - "zstd-safe", -] - -[[package]] -name = "zstd-safe" -version = "5.0.2+zstd.1.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db" -dependencies = [ - "libc", - "zstd-sys", -] - -[[package]] -name = "zstd-sys" -version = "2.0.13+zstd.1.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38ff0f21cfee8f97d94cef41359e0c89aa6113028ab0291aa8ca0038995a95aa" -dependencies = [ - "cc", - "pkg-config", -]