From 684ef5a3d63bbbdf97c664f2510f6c4221ef9313 Mon Sep 17 00:00:00 2001 From: Oscar Pepper Date: Wed, 13 May 2026 13:20:21 +0100 Subject: [PATCH 1/2] update zingo-netutils cargo.toml version and fix doc and whitespace errors --- Cargo.lock | 2 +- zingo-netutils/CHANGELOG.md | 3 +- zingo-netutils/Cargo.toml | 2 +- zingo-netutils/src/globally_public.rs | 36 ++++-- zingo-netutils/src/lib.rs | 172 ++++++++++++++++++-------- 5 files changed, 153 insertions(+), 62 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 90dcd4c..df4e869 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2873,7 +2873,7 @@ dependencies = [ [[package]] name = "zingo-netutils" -version = "4.0.0" +version = "5.0.0" dependencies = [ "http", "http-body-util", diff --git a/zingo-netutils/CHANGELOG.md b/zingo-netutils/CHANGELOG.md index c0baf46..de490f7 100644 --- a/zingo-netutils/CHANGELOG.md +++ b/zingo-netutils/CHANGELOG.md @@ -14,11 +14,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - `Indexer` and `TransparentIndexer` traits: - methods now return `tonic::Status` error to be more compatible as drop-in replacement for ComapctTxStreamerClient - methods take a `&mut self` to allow for re-use of client instead of forcing creation of client for each rpc call + - method returns constrained to impl `Send` - `GprcIndexer` struct: - implementations updated for changes to `Indexer` and `TransparentIndexer` traits - `new` constructor is now async - `get_client` method renamed `get_clear_net_client`. naming chosen to distinguish against nym enabled clients which will also be held by `Grpcndexer` - + ### Removed diff --git a/zingo-netutils/Cargo.toml b/zingo-netutils/Cargo.toml index ae88070..d5d1e32 100644 --- a/zingo-netutils/Cargo.toml +++ b/zingo-netutils/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "zingo-netutils" -version = "4.0.0" +version = "5.0.0" description = "network utility crate" authors = ["zingo@zingolabs.org"] edition.workspace = true diff --git a/zingo-netutils/src/globally_public.rs b/zingo-netutils/src/globally_public.rs index ef2090f..9672aea 100644 --- a/zingo-netutils/src/globally_public.rs +++ b/zingo-netutils/src/globally_public.rs @@ -84,9 +84,7 @@ pub trait TransparentIndexer: Indexer { &mut self, arg: GetAddressUtxosArg, timeout: Duration, - ) -> impl Future< - Output = Result, tonic::Status>, - > + Send; + ) -> impl Future, tonic::Status>> + Send; } impl TransparentIndexer for GrpcIndexer { @@ -98,7 +96,11 @@ impl TransparentIndexer for GrpcIndexer { ) -> Result, tonic::Status> { let mut request = Request::new(filter); request.set_timeout(timeout); - Ok(self.clear_net_client.get_taddress_txids(request).await?.into_inner()) + Ok(self + .clear_net_client + .get_taddress_txids(request) + .await? + .into_inner()) } async fn get_taddress_transactions( @@ -106,9 +108,10 @@ impl TransparentIndexer for GrpcIndexer { filter: TransparentAddressBlockFilter, timeout: Duration, ) -> Result, tonic::Status> { - let mut request = Request::new(filter); + let mut request = Request::new(filter); request.set_timeout(timeout); - Ok(self.clear_net_client + Ok(self + .clear_net_client .get_taddress_transactions(request) .await? .into_inner()) @@ -121,7 +124,11 @@ impl TransparentIndexer for GrpcIndexer { ) -> Result { let mut request = Request::new(addresses); request.set_timeout(timeout); - Ok(self.clear_net_client.get_taddress_balance(request).await?.into_inner()) + Ok(self + .clear_net_client + .get_taddress_balance(request) + .await? + .into_inner()) } async fn get_taddress_balance_stream( @@ -129,7 +136,8 @@ impl TransparentIndexer for GrpcIndexer { addresses: Vec
, ) -> Result { let stream = tokio_stream::iter(addresses); - Ok(self.clear_net_client + Ok(self + .clear_net_client .get_taddress_balance_stream(stream) .await? .into_inner()) @@ -142,7 +150,11 @@ impl TransparentIndexer for GrpcIndexer { ) -> Result { let mut request = Request::new(arg); request.set_timeout(timeout); - Ok(self.clear_net_client.get_address_utxos(request).await?.into_inner()) + Ok(self + .clear_net_client + .get_address_utxos(request) + .await? + .into_inner()) } async fn get_address_utxos_stream( @@ -152,6 +164,10 @@ impl TransparentIndexer for GrpcIndexer { ) -> Result, tonic::Status> { let mut request = Request::new(arg); request.set_timeout(timeout); - Ok(self.clear_net_client.get_address_utxos_stream(request).await?.into_inner()) + Ok(self + .clear_net_client + .get_address_utxos_stream(request) + .await? + .into_inner()) } } diff --git a/zingo-netutils/src/lib.rs b/zingo-netutils/src/lib.rs index 0d7324b..e2484c6 100644 --- a/zingo-netutils/src/lib.rs +++ b/zingo-netutils/src/lib.rs @@ -45,9 +45,9 @@ use lightwallet_protocol::{Duration as ProtoDuration, PingResponse}; pub mod error; -pub use lightwallet_protocol; pub use error::*; -pub use tonic::{Streaming, Status}; +pub use lightwallet_protocol; +pub use tonic::{Status, Streaming}; #[cfg(feature = "globally-public-transparent")] mod globally_public; @@ -81,25 +81,31 @@ pub trait Indexer { /// The returned [`LightdInfo`] includes the chain name, current block height, /// server version, and consensus branch ID. Callers should not cache this /// value across sync boundaries as the block height is a point-in-time snapshot. - fn get_lightd_info(&mut self, timeout: Duration) -> impl Future> + Send; + fn get_lightd_info( + &mut self, + timeout: Duration, + ) -> impl Future> + Send; /// Return the height and hash of the chain tip. /// /// The returned [`BlockId`] identifies the most recent block the server /// is aware of. The hash may be omitted by some implementations. - fn get_latest_block(&mut self, timeout: Duration) -> impl Future> + Send; + fn get_latest_block( + &mut self, + timeout: Duration, + ) -> impl Future> + Send; /// Submit a raw transaction to the network. /// /// On success, returns the transaction ID as a hex string. - /// On rejection by the network, returns a [`Self::SendTransactionError`] + /// On rejection by the network, returns a [`tonic::Status`] /// containing the rejection reason. Callers should be prepared for /// transient failures and may retry. fn send_transaction( &mut self, - -tx: RawTransaction, timeout: Duration, - ) -> impl Future> + Send; + tx: RawTransaction, + timeout: Duration, + ) -> impl Future> + Send; /// Fetch the note commitment tree state for the given block. /// @@ -109,7 +115,7 @@ tx: RawTransaction, timeout: Duration, fn get_tree_state( &mut self, block_id: BlockId, - timeout: Duration, + timeout: Duration, ) -> impl Future> + Send; /// Return the compact block at the given height. @@ -119,7 +125,7 @@ tx: RawTransaction, timeout: Duration, fn get_block( &mut self, block_id: BlockId, - timeout: Duration, + timeout: Duration, ) -> impl Future> + Send; /// Return the compact block at the given height, containing only nullifiers. @@ -130,7 +136,7 @@ tx: RawTransaction, timeout: Duration, fn get_block_nullifiers( &mut self, block_id: BlockId, - timeout: Duration, + timeout: Duration, ) -> impl Future> + Send; /// Return a stream of consecutive compact blocks for the given range. @@ -145,7 +151,7 @@ tx: RawTransaction, timeout: Duration, fn get_block_range( &mut self, range: BlockRange, - timeout: Duration, + timeout: Duration, ) -> impl Future, tonic::Status>> + Send; /// Return a stream of consecutive compact blocks (nullifiers only) for the given range. @@ -157,7 +163,7 @@ tx: RawTransaction, timeout: Duration, fn get_block_range_nullifiers( &mut self, range: BlockRange, - timeout: Duration, + timeout: Duration, ) -> impl Future, tonic::Status>> + Send; /// Return the full serialized transaction matching the given filter. @@ -168,7 +174,7 @@ tx: RawTransaction, timeout: Duration, fn get_transaction( &mut self, filter: TxFilter, - timeout: Duration, + timeout: Duration, ) -> impl Future> + Send; /// Return a stream of compact transactions currently in the mempool. @@ -179,7 +185,7 @@ tx: RawTransaction, timeout: Duration, fn get_mempool_tx( &mut self, request: GetMempoolTxRequest, - timeout: Duration, + timeout: Duration, ) -> impl Future, tonic::Status>> + Send; /// Return a stream of raw mempool transactions. @@ -188,7 +194,7 @@ tx: RawTransaction, timeout: Duration, /// closes when a new block is mined. fn get_mempool_stream( &mut self, - timeout: Duration, + timeout: Duration, ) -> impl Future, tonic::Status>> + Send; /// Return the note commitment tree state at the chain tip. @@ -197,7 +203,7 @@ tx: RawTransaction, timeout: Duration, /// the current tip height, but avoids the need to query the tip first. fn get_latest_tree_state( &mut self, - timeout: Duration, + timeout: Duration, ) -> impl Future> + Send; /// Return a stream of subtree roots for the given shielded protocol. @@ -207,7 +213,7 @@ tx: RawTransaction, timeout: Duration, fn get_subtree_roots( &mut self, arg: GetSubtreeRootsArg, - timeout: Duration, + timeout: Duration, ) -> impl Future, tonic::Status>> + Send; /// Simulate server latency for testing. @@ -220,7 +226,7 @@ tx: RawTransaction, timeout: Duration, fn ping( &mut self, duration: ProtoDuration, - timeout: Duration, + timeout: Duration, ) -> impl Future> + Send; } @@ -276,19 +282,35 @@ impl Indexer for GrpcIndexer { async fn get_lightd_info(&mut self, timeout: Duration) -> Result { let mut request = Request::new(Empty {}); request.set_timeout(timeout); - Ok(self.clear_net_client.get_lightd_info(request).await?.into_inner()) + Ok(self + .clear_net_client + .get_lightd_info(request) + .await? + .into_inner()) } async fn get_latest_block(&mut self, timeout: Duration) -> Result { let mut request = Request::new(ChainSpec {}); request.set_timeout(timeout); - Ok(self.clear_net_client.get_latest_block(request).await?.into_inner()) + Ok(self + .clear_net_client + .get_latest_block(request) + .await? + .into_inner()) } - async fn send_transaction(&mut self, tx: RawTransaction, timeout: Duration) -> Result { + async fn send_transaction( + &mut self, + tx: RawTransaction, + timeout: Duration, + ) -> Result { let mut request = Request::new(tx); request.set_timeout(timeout); - let sendresponse = self.clear_net_client.send_transaction(request).await?.into_inner(); + let sendresponse = self + .clear_net_client + .send_transaction(request) + .await? + .into_inner(); if sendresponse.error_code == 0 { let mut transaction_id = sendresponse.error_message; if transaction_id.starts_with('\"') && transaction_id.ends_with('\"') { @@ -296,17 +318,32 @@ impl Indexer for GrpcIndexer { } Ok(transaction_id) } else { - Err(tonic::Status::new(tonic::Code::Unknown, sendresponse.error_message)) + Err(tonic::Status::new( + tonic::Code::Unknown, + sendresponse.error_message, + )) } } - async fn get_tree_state(&mut self, block_id: BlockId, timeout: Duration) -> Result { + async fn get_tree_state( + &mut self, + block_id: BlockId, + timeout: Duration, + ) -> Result { let mut request = Request::new(block_id); request.set_timeout(timeout); - Ok(self.clear_net_client.get_tree_state(request).await?.into_inner()) + Ok(self + .clear_net_client + .get_tree_state(request) + .await? + .into_inner()) } - async fn get_block(&mut self, block_id: BlockId, timeout: Duration) -> Result { + async fn get_block( + &mut self, + block_id: BlockId, + timeout: Duration, + ) -> Result { let mut request = Request::new(block_id); request.set_timeout(timeout); Ok(self.clear_net_client.get_block(request).await?.into_inner()) @@ -315,32 +352,42 @@ impl Indexer for GrpcIndexer { #[allow(deprecated)] async fn get_block_nullifiers( &mut self, - block_id: BlockId -, timeout: Duration ) -> Result { + block_id: BlockId, + timeout: Duration, + ) -> Result { let mut request = Request::new(block_id); request.set_timeout(timeout); - Ok(self.clear_net_client.get_block_nullifiers(request).await?.into_inner()) + Ok(self + .clear_net_client + .get_block_nullifiers(request) + .await? + .into_inner()) } async fn get_block_range( &mut self, range: BlockRange, - timeout: Duration, + timeout: Duration, ) -> Result, tonic::Status> { let mut request = Request::new(range); request.set_timeout(timeout); - Ok(self.clear_net_client.get_block_range(request).await?.into_inner()) + Ok(self + .clear_net_client + .get_block_range(request) + .await? + .into_inner()) } #[allow(deprecated)] async fn get_block_range_nullifiers( &mut self, range: BlockRange, - timeout: Duration, + timeout: Duration, ) -> Result, tonic::Status> { let mut request = Request::new(range); request.set_timeout(timeout); - Ok(self.clear_net_client + Ok(self + .clear_net_client .get_block_range_nullifiers(request) .await? .into_inner()) @@ -349,53 +396,76 @@ impl Indexer for GrpcIndexer { async fn get_transaction( &mut self, filter: TxFilter, - timeout: Duration, + timeout: Duration, ) -> Result { let mut request = Request::new(filter); request.set_timeout(timeout); - Ok(self.clear_net_client.get_transaction(request).await?.into_inner()) + Ok(self + .clear_net_client + .get_transaction(request) + .await? + .into_inner()) } async fn get_mempool_tx( &mut self, request: GetMempoolTxRequest, - timeout: Duration, + timeout: Duration, ) -> Result, tonic::Status> { let mut request = Request::new(request); request.set_timeout(timeout); - Ok(self.clear_net_client.get_mempool_tx(request).await?.into_inner()) + Ok(self + .clear_net_client + .get_mempool_tx(request) + .await? + .into_inner()) } async fn get_mempool_stream( &mut self, - timeout: Duration, + timeout: Duration, ) -> Result, tonic::Status> { let mut request = Request::new(Empty {}); request.set_timeout(timeout); - Ok(self.clear_net_client.get_mempool_stream(request).await?.into_inner()) + Ok(self + .clear_net_client + .get_mempool_stream(request) + .await? + .into_inner()) } - async fn get_latest_tree_state(&mut self, - timeout: Duration, + async fn get_latest_tree_state( + &mut self, + timeout: Duration, ) -> Result { let mut request = Request::new(Empty {}); request.set_timeout(timeout); - Ok(self.clear_net_client.get_latest_tree_state(request).await?.into_inner()) + Ok(self + .clear_net_client + .get_latest_tree_state(request) + .await? + .into_inner()) } async fn get_subtree_roots( &mut self, arg: GetSubtreeRootsArg, - timeout: Duration, + timeout: Duration, ) -> Result, tonic::Status> { let mut request = Request::new(arg); request.set_timeout(timeout); - Ok(self.clear_net_client.get_subtree_roots(request).await?.into_inner()) + Ok(self + .clear_net_client + .get_subtree_roots(request) + .await? + .into_inner()) } #[cfg(feature = "ping-very-insecure")] - async fn ping(&mut self, duration: ProtoDuration, - timeout: Duration, + async fn ping( + &mut self, + duration: ProtoDuration, + timeout: Duration, ) -> Result { let mut request = Request::new(duration); request.set_timeout(timeout); @@ -743,7 +813,8 @@ mod tests { let uri: http::Uri = endpoint.parse().expect("bad mainnet indexer URI"); - let response = GrpcIndexer::new(uri).await + let response = GrpcIndexer::new(uri) + .await .expect("URI to be valid.") .get_lightd_info(DEFAULT_TIMEOUT) .await @@ -780,7 +851,10 @@ mod tests { let uri: http::Uri = "https://zec.rocks:443".parse().unwrap(); let mut indexer = GrpcIndexer::new(uri).await.expect("valid URI"); - let tip = indexer.get_latest_block(DEFAULT_TIMEOUT).await.expect("get_latest_block"); + let tip = indexer + .get_latest_block(DEFAULT_TIMEOUT) + .await + .expect("get_latest_block"); let start_height = tip.height; let end_height = start_height.saturating_sub(4); From 2ebe3d9120d70a04fe6e32c38b7b8387b294102b Mon Sep 17 00:00:00 2001 From: Oscar Pepper Date: Wed, 13 May 2026 13:23:57 +0100 Subject: [PATCH 2/2] cargo update --- Cargo.lock | 164 ++++++++++++++++++++++++++--------------------------- 1 file changed, 81 insertions(+), 83 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index df4e869..dc0bfde 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -114,9 +114,9 @@ checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "axum" -version = "0.8.8" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b52af3cb4058c895d37317bb27508dccc8e5f2d39454016b297bf4a400597b8" +checksum = "31b698c5f9a010f6573133b09e0de5408834d0c82f8d7475a89fc1867a71cd90" dependencies = [ "axum-core", "bytes", @@ -201,9 +201,9 @@ dependencies = [ [[package]] name = "bitflags" -version = "2.11.0" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af" +checksum = "c4512299f36f043ab09a583e57bceb5a5aab7a73db1805848e8fef3c9e8c78b3" [[package]] name = "bitvec" @@ -312,9 +312,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.57" +version = "1.2.62" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a0dd1ca384932ff3641c8718a02769f1698e7563dc6974ffd03346116310423" +checksum = "a1dce859f0832a7d088c4f1119888ab94ef4b5d6795d1ce05afb7fe159d79f98" dependencies = [ "find-msvc-tools", "shlex", @@ -459,9 +459,9 @@ dependencies = [ [[package]] name = "data-encoding" -version = "2.10.0" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7a1e2f27636f116493b8b860f5546edb47c8d8f8ea73e1d2a20be88e28d1fea" +checksum = "a4ae5f15dda3c708c0ade84bfee31ccab44a3da4f88015ed22f63732abe300c8" [[package]] name = "der-parser" @@ -570,9 +570,9 @@ dependencies = [ [[package]] name = "fastrand" -version = "2.3.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" +checksum = "9f1f227452a390804cdb637b74a86990f2a7d7ba4b7d5693aac9b4dd6defd8d6" [[package]] name = "ff" @@ -728,9 +728,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.4.13" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f44da3a8150a6703ed5d34e164b875fd14c2cdab9af1252a9a1020bde2bdc54" +checksum = "171fefbc92fe4a4de27e0698d6a5b392d6a0e333506bc49133760b3bcf948733" dependencies = [ "atomic-waker", "bytes", @@ -738,7 +738,7 @@ dependencies = [ "futures-core", "futures-sink", "http", - "indexmap 2.13.0", + "indexmap 2.14.0", "slab", "tokio", "tokio-util", @@ -817,9 +817,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.16.1" +version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" +checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" [[package]] name = "heck" @@ -898,9 +898,9 @@ dependencies = [ [[package]] name = "hyper" -version = "1.8.1" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ab2d4f250c3d7b1c9fcdff1cece94ea4e2dfbec68614f7b87cb205f24ca9d11" +checksum = "6299f016b246a94207e63da54dbe807655bf9e00044f73ded42c3ac5305fbcca" dependencies = [ "atomic-waker", "bytes", @@ -913,7 +913,6 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", - "pin-utils", "smallvec", "tokio", "want", @@ -921,9 +920,9 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.27.7" +version = "0.27.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58" +checksum = "33ca68d021ef39cf6463ab54c1d0f5daf03377b70561305bb89a8f83aab66e0f" dependencies = [ "http", "hyper", @@ -931,7 +930,6 @@ dependencies = [ "log", "rustls", "rustls-native-certs", - "rustls-pki-types", "tokio", "tokio-rustls", "tower-service", @@ -997,12 +995,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.13.0" +version = "2.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" +checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9" dependencies = [ "equivalent", - "hashbrown 0.16.1", + "hashbrown 0.17.1", "serde", "serde_core", ] @@ -1062,9 +1060,9 @@ checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" [[package]] name = "libc" -version = "0.2.183" +version = "0.2.186" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b646652bf6661599e1da8901b3b9522896f01e736bad5f723fe7a3a27f899d" +checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" [[package]] name = "libm" @@ -1142,9 +1140,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "mio" -version = "1.1.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc" +checksum = "50b7e5b27aa02a74bac8c3f23f448f8d87ff11f92d3aac1a6ed369ee08cc56c1" dependencies = [ "libc", "wasi", @@ -1308,23 +1306,23 @@ checksum = "8701b58ea97060d5e5b155d383a69952a60943f0e6dfe30b04c287beb0b27455" dependencies = [ "fixedbitset", "hashbrown 0.15.5", - "indexmap 2.13.0", + "indexmap 2.14.0", ] [[package]] name = "pin-project" -version = "1.1.11" +version = "1.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1749c7ed4bcaf4c3d0a3efc28538844fb29bcdd7d2b67b2be7e20ba861ff517" +checksum = "cbf0d9e68100b3a7989b4901972f265cd542e560a3a8a724e1e20322f4d06ce9" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.11" +version = "1.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b20ed30f105399776b9c883e68e536ef602a16ae6f596d2c473591d6ad64c6" +checksum = "a990e22f43e84855daf260dded30524ef4a9021cc7541c26540500a50b624389" dependencies = [ "proc-macro2", "quote", @@ -1337,12 +1335,6 @@ version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - [[package]] name = "poly1305" version = "0.8.0" @@ -1484,9 +1476,9 @@ checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" [[package]] name = "rand" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +checksum = "5ca0ecfa931c29007047d1bc58e623ab12e5590e8c7cc53200d5202b69266d8a" dependencies = [ "libc", "rand_chacha", @@ -1514,9 +1506,9 @@ dependencies = [ [[package]] name = "rayon" -version = "1.11.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" +checksum = "fb39b166781f92d482534ef4b4b1b2568f42613b53e5b6c160e24cfbfa30926d" dependencies = [ "either", "rayon-core", @@ -1647,9 +1639,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.37" +version = "0.23.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "758025cb5fccfd3bc2fd74708fd4682be41d99e5dff73c377c0646c6012c73a4" +checksum = "ef86cd5876211988985292b91c96a8f2d298df24e75989a43a3c73f2d4d8168b" dependencies = [ "log", "once_cell", @@ -1683,18 +1675,18 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.14.0" +version = "1.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be040f8b0a225e40375822a563fa9524378b9d63112f53e19ffff34df5d33fdd" +checksum = "30a7197ae7eb376e574fe940d068c30fe0462554a3ddbe4eca7838e049c937a9" dependencies = [ "zeroize", ] [[package]] name = "rustls-webpki" -version = "0.103.10" +version = "0.103.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df33b2b81ac578cabaf06b89b0631153a3f416b0a886e8a7a1707fb51abbd1ef" +checksum = "61c429a8649f110dddef65e2a5ad240f747e85f7758a6bccc7e5777bd33f756e" dependencies = [ "ring", "rustls-pki-types", @@ -1795,9 +1787,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.27" +version = "1.0.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" +checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" [[package]] name = "serde" @@ -2079,9 +2071,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.50.0" +version = "1.52.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27ad5e34374e03cfffefc301becb44e9dc3c17584f414349ebe29ed26661822d" +checksum = "8fc7f01b389ac15039e4dc9531aa973a135d7a4135281b12d7c1bc79fd57fffe" dependencies = [ "bytes", "libc", @@ -2094,9 +2086,9 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "2.6.1" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c55a2eff8b69ce66c84f85e1da1c233edc36ceb85a2058d11b0d6a3c7e7569c" +checksum = "385a6cb71ab9ab790c5fe8d67f1645e6c450a7ce006a33de03daa956cf70a496" dependencies = [ "proc-macro2", "quote", @@ -2139,9 +2131,9 @@ dependencies = [ [[package]] name = "tonic" -version = "0.14.5" +version = "0.14.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fec7c61a0695dc1887c1b53952990f3ad2e3a31453e1f49f10e75424943a93ec" +checksum = "ac2a5518c70fa84342385732db33fb3f44bc4cc748936eb5833d2df34d6445ef" dependencies = [ "async-trait", "axum", @@ -2170,9 +2162,9 @@ dependencies = [ [[package]] name = "tonic-build" -version = "0.14.5" +version = "0.14.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1882ac3bf5ef12877d7ed57aad87e75154c11931c2ba7e6cde5e22d63522c734" +checksum = "c68f61875ac5293cf72e6c8cf0158086428c82c37229e98c840878f1706b0322" dependencies = [ "prettyplease", "proc-macro2", @@ -2182,9 +2174,9 @@ dependencies = [ [[package]] name = "tonic-prost" -version = "0.14.5" +version = "0.14.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a55376a0bbaa4975a3f10d009ad763d8f4108f067c7c2e74f3001fb49778d309" +checksum = "50849f68853be452acf590cde0b146665b8d507b3b8af17261df47e02c209ea0" dependencies = [ "bytes", "prost", @@ -2193,9 +2185,9 @@ dependencies = [ [[package]] name = "tonic-prost-build" -version = "0.14.5" +version = "0.14.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3144df636917574672e93d0f56d7edec49f90305749c668df5101751bb8f95a" +checksum = "654e5643eff75d7f8c99197ce1440ed19a3474eada74c12bbac488b2cafdae27" dependencies = [ "prettyplease", "proc-macro2", @@ -2215,7 +2207,7 @@ checksum = "ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4" dependencies = [ "futures-core", "futures-util", - "indexmap 2.13.0", + "indexmap 2.14.0", "pin-project-lite", "slab", "sync_wrapper", @@ -2277,9 +2269,9 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "typenum" -version = "1.19.0" +version = "1.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" +checksum = "40ce102ab67701b8526c123c1bab5cbe42d7040ccfd0f64af1a385808d2f43de" [[package]] name = "uint" @@ -2355,11 +2347,11 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasip2" -version = "1.0.2+wasi-0.2.9" +version = "1.0.3+wasi-0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" +checksum = "20064672db26d7cdc89c7798c48a0fdfac8213434a1186e5ef29fd560ae223d6" dependencies = [ - "wit-bindgen", + "wit-bindgen 0.57.1", ] [[package]] @@ -2368,7 +2360,7 @@ version = "0.4.0+wasi-0.3.0-rc-2026-01-06" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" dependencies = [ - "wit-bindgen", + "wit-bindgen 0.51.0", ] [[package]] @@ -2388,7 +2380,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" dependencies = [ "anyhow", - "indexmap 2.13.0", + "indexmap 2.14.0", "wasm-encoder", "wasmparser", ] @@ -2401,15 +2393,15 @@ checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" dependencies = [ "bitflags", "hashbrown 0.15.5", - "indexmap 2.13.0", + "indexmap 2.14.0", "semver", ] [[package]] name = "webpki-roots" -version = "1.0.6" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22cfaf3c063993ff62e73cb4311efde4db1efb31ab78a3e5c457939ad5cc0bed" +checksum = "52f5ee44c96cf55f1b349600768e3ece3a8f26010c05265ab73f945bb1a2eb9d" dependencies = [ "rustls-pki-types", ] @@ -2520,6 +2512,12 @@ dependencies = [ "wit-bindgen-rust-macro", ] +[[package]] +name = "wit-bindgen" +version = "0.57.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e" + [[package]] name = "wit-bindgen-core" version = "0.51.0" @@ -2539,7 +2537,7 @@ checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" dependencies = [ "anyhow", "heck", - "indexmap 2.13.0", + "indexmap 2.14.0", "prettyplease", "syn", "wasm-metadata", @@ -2570,7 +2568,7 @@ checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" dependencies = [ "anyhow", "bitflags", - "indexmap 2.13.0", + "indexmap 2.14.0", "log", "serde", "serde_derive", @@ -2589,7 +2587,7 @@ checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" dependencies = [ "anyhow", "id-arena", - "indexmap 2.13.0", + "indexmap 2.14.0", "log", "semver", "serde", @@ -2782,9 +2780,9 @@ dependencies = [ [[package]] name = "zcash_script" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6ef9d04e0434a80b62ad06c5a610557be358ef60a98afa5dbc8ecaf19ad72e7" +checksum = "774d808ab619b0f1887d7b90cd815c356101698d16aa681f3d2d9dea063de475" dependencies = [ "bip32", "bitflags", @@ -2833,18 +2831,18 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.47" +version = "0.8.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efbb2a062be311f2ba113ce66f697a4dc589f85e78a4aea276200804cea0ed87" +checksum = "eed437bf9d6692032087e337407a86f04cd8d6a16a37199ed57949d415bd68e9" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.47" +version = "0.8.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e8bc7269b54418e7aeeef514aa68f8690b8c0489a06b0136e5f57c4c5ccab89" +checksum = "70e3cd084b1788766f53af483dd21f93881ff30d7320490ec3ef7526d203bad4" dependencies = [ "proc-macro2", "quote",