Skip to main content

CompactTxStreamerClient

Struct CompactTxStreamerClient 

Source
pub struct CompactTxStreamerClient<T> { /* private fields */ }
Available on crate feature lightwalletd-tonic only.

Implementations§

Source§

impl<T> CompactTxStreamerClient<T>
where T: GrpcService<Body>, T::Error: Into<StdError>, T::ResponseBody: Body<Data = Bytes> + Send + 'static, <T::ResponseBody as Body>::Error: Into<StdError> + Send,

Source

pub fn new(inner: T) -> Self

Source

pub fn with_origin(inner: T, origin: Uri) -> Self

Source

pub fn with_interceptor<F>( inner: T, interceptor: F, ) -> CompactTxStreamerClient<InterceptedService<T, F>>
where F: Interceptor, T::ResponseBody: Default, T: Service<Request<Body>, Response = Response<<T as GrpcService<Body>>::ResponseBody>>, <T as Service<Request<Body>>>::Error: Into<StdError> + Send + Sync,

Source

pub fn send_compressed(self, encoding: CompressionEncoding) -> Self

Compress requests with the given encoding.

This requires the server to support it otherwise it might respond with an error.

Source

pub fn accept_compressed(self, encoding: CompressionEncoding) -> Self

Enable decompressing responses.

Source

pub fn max_decoding_message_size(self, limit: usize) -> Self

Limits the maximum size of a decoded message.

Default: 4MB

Source

pub fn max_encoding_message_size(self, limit: usize) -> Self

Limits the maximum size of an encoded message.

Default: usize::MAX

Source

pub async fn get_latest_block( &mut self, request: impl IntoRequest<ChainSpec>, ) -> Result<Response<BlockId>, Status>

Return the BlockID of the block at the tip of the best chain

Source

pub async fn get_block( &mut self, request: impl IntoRequest<BlockId>, ) -> Result<Response<CompactBlock>, Status>

Return the compact block corresponding to the given block identifier.

The returned CompactBlock includes transaction data for all value pools, including transparent inputs (vin) and outputs (vout). This differs from GetBlockRange, which supports filtering by pool type and defaults to returning only shielded (Sapling, Orchard, and Ironwood) data. Clients that require only data for specific pools should use GetBlockRange with the appropriate poolTypes set.

Note: the single null-outpoint input for coinbase transactions is omitted from the vin field of the corresponding CompactTx. See the documentation of the CompactTx message for details.

Source

pub async fn get_block_nullifiers( &mut self, request: impl IntoRequest<BlockId>, ) -> Result<Response<CompactBlock>, Status>

👎Deprecated

Return a compact block containing only nullifier information for the shielded pools (Sapling spend nullifiers, Orchard action nullifiers, and Ironwood action nullifiers). Transparent transaction data, Sapling outputs, full Orchard/Ironwood action data, and commitment tree sizes are not included.

Note: this method is deprecated; use GetBlockRange with the appropriate poolTypes instead.

Source

pub async fn get_block_range( &mut self, request: impl IntoRequest<BlockRange>, ) -> Result<Response<Streaming<CompactBlock>>, Status>

Return a list of consecutive compact blocks in the specified range, which is inclusive of range.end.

If range.start <= range.end, blocks are returned increasing height order; otherwise blocks are returned in decreasing height order.

Source

pub async fn get_block_range_nullifiers( &mut self, request: impl IntoRequest<BlockRange>, ) -> Result<Response<Streaming<CompactBlock>>, Status>

👎Deprecated

Return a stream of compact blocks for the specified range, where each block contains only nullifier information for the shielded pools (Sapling spend nullifiers, Orchard action nullifiers, and Ironwood action nullifiers). Transparent transaction data, Sapling outputs, full Orchard/Ironwood action data, and commitment tree sizes are not included. Implementations MUST ignore any PoolType::TRANSPARENT member of the poolTypes field of the request.

Note: this method is deprecated; use GetBlockRange with the appropriate poolTypes instead.

Source

pub async fn get_transaction( &mut self, request: impl IntoRequest<TxFilter>, ) -> Result<Response<RawTransaction>, Status>

Return the requested full (not compact) transaction (as from zcashd)

Source

pub async fn send_transaction( &mut self, request: impl IntoRequest<RawTransaction>, ) -> Result<Response<SendResponse>, Status>

Submit the given transaction to the Zcash network

Source

pub async fn get_taddress_txids( &mut self, request: impl IntoRequest<TransparentAddressBlockFilter>, ) -> Result<Response<Streaming<RawTransaction>>, Status>

Return RawTransactions that match the given transparent address filter.

Note: This function is misnamed, it returns complete RawTransaction values, not TxIds. NOTE: this method is deprecated, please use GetTaddressTransactions instead.

Source

pub async fn get_taddress_transactions( &mut self, request: impl IntoRequest<TransparentAddressBlockFilter>, ) -> Result<Response<Streaming<RawTransaction>>, Status>

Return the transactions corresponding to the given t-address within the given block range. Mempool transactions are not included in the results.

Source

pub async fn get_taddress_balance( &mut self, request: impl IntoRequest<AddressList>, ) -> Result<Response<Balance>, Status>

Source

pub async fn get_taddress_balance_stream( &mut self, request: impl IntoStreamingRequest<Message = Address>, ) -> Result<Response<Balance>, Status>

Source

pub async fn get_mempool_tx( &mut self, request: impl IntoRequest<GetMempoolTxRequest>, ) -> Result<Response<Streaming<CompactTx>>, Status>

Returns a stream of the compact transaction representation for transactions currently in the mempool. The results of this operation may be a few seconds out of date. If the exclude_txid_suffixes list is empty, return all transactions; otherwise return all except those in the exclude_txid_suffixes list (if any); this allows the client to avoid receiving transactions that it already has (from an earlier call to this RPC). The transaction IDs in the exclude_txid_suffixes list can be shortened to any number of bytes to make the request more bandwidth-efficient; if two or more transactions in the mempool match a txid suffix, none of the matching transactions are excluded. Txid suffixes in the exclude list that don’t match any transactions in the mempool are ignored.

Source

pub async fn get_mempool_stream( &mut self, request: impl IntoRequest<Empty>, ) -> Result<Response<Streaming<RawTransaction>>, Status>

Return a stream of current Mempool transactions. This will keep the output stream open while there are mempool transactions. It will close the returned stream when a new block is mined.

Source

pub async fn get_tree_state( &mut self, request: impl IntoRequest<BlockId>, ) -> Result<Response<TreeState>, Status>

GetTreeState returns the note commitment tree state corresponding to the given block. See section 3.7 of the Zcash protocol specification. It returns several other useful values also (even though they can be obtained using GetBlock). The block can be specified by either height or hash.

Source

pub async fn get_latest_tree_state( &mut self, request: impl IntoRequest<Empty>, ) -> Result<Response<TreeState>, Status>

Source

pub async fn get_subtree_roots( &mut self, request: impl IntoRequest<GetSubtreeRootsArg>, ) -> Result<Response<Streaming<SubtreeRoot>>, Status>

Returns a stream of information about roots of subtrees of the note commitment tree for the specified shielded pool (Sapling, Orchard, or Ironwood).

Source

pub async fn get_address_utxos( &mut self, request: impl IntoRequest<GetAddressUtxosArg>, ) -> Result<Response<GetAddressUtxosReplyList>, Status>

Source

pub async fn get_address_utxos_stream( &mut self, request: impl IntoRequest<GetAddressUtxosArg>, ) -> Result<Response<Streaming<GetAddressUtxosReply>>, Status>

Source

pub async fn get_lightd_info( &mut self, request: impl IntoRequest<Empty>, ) -> Result<Response<LightdInfo>, Status>

Return information about this lightwalletd instance and the blockchain

Source

pub async fn ping( &mut self, request: impl IntoRequest<Duration>, ) -> Result<Response<PingResponse>, Status>

Testing-only, requires lightwalletd –ping-very-insecure (do not enable in production)

Source§

impl CompactTxStreamerClient<Channel>

Source

pub async fn connect<D>(dst: D) -> Result<Self, Error>
where D: TryInto<Endpoint>, D::Error: Into<StdError>,

Available on crate feature lightwalletd-tonic-transport only.

Attempt to create a new client by connecting to a given endpoint.

Trait Implementations§

Source§

impl<T: Clone> Clone for CompactTxStreamerClient<T>

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<T: Debug> Debug for CompactTxStreamerClient<T>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<T> !Freeze for CompactTxStreamerClient<T>

§

impl<T> RefUnwindSafe for CompactTxStreamerClient<T>
where Grpc<T>: RefUnwindSafe,

§

impl<T> Send for CompactTxStreamerClient<T>
where Grpc<T>: Send,

§

impl<T> Sync for CompactTxStreamerClient<T>
where Grpc<T>: Sync,

§

impl<T> Unpin for CompactTxStreamerClient<T>
where Grpc<T>: Unpin,

§

impl<T> UnsafeUnpin for CompactTxStreamerClient<T>
where Grpc<T>: UnsafeUnpin,

§

impl<T> UnwindSafe for CompactTxStreamerClient<T>
where Grpc<T>: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

§

fn implicit( self, class: Class, constructed: bool, tag: u32, ) -> TaggedParser<'a, Implicit, Self, E>

Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> Downcast for T
where T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Converts Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Converts Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Converts &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Converts &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> DowncastSend for T
where T: Any + Send,

§

fn into_any_send(self: Box<T>) -> Box<dyn Any + Send>

Converts Box<Trait> (where Trait: DowncastSend) to Box<dyn Any + Send>, which can then be downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

§

fn into_any_sync(self: Box<T>) -> Box<dyn Any + Sync + Send>

Converts Box<Trait> (where Trait: DowncastSync) to Box<dyn Any + Send + Sync>, which can then be downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send> ⓘ

Converts Arc<Trait> (where Trait: DowncastSync) to Arc<Any>, which can then be downcast into Arc<ConcreteType> where ConcreteType implements Trait.
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

§

impl<T> FmtForward for T

§

fn fmt_binary(self) -> FmtBinary<Self>
where Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
§

fn fmt_display(self) -> FmtDisplay<Self>
where Self: Display,

Causes self to use its Display implementation when Debug-formatted.
§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>
where Self: LowerExp,

Causes self to use its LowerExp implementation when Debug-formatted.
§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>
where Self: LowerHex,

Causes self to use its LowerHex implementation when Debug-formatted.
§

fn fmt_octal(self) -> FmtOctal<Self>
where Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
§

fn fmt_pointer(self) -> FmtPointer<Self>
where Self: Pointer,

Causes self to use its Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where Self: UpperExp,

Causes self to use its UpperExp implementation when Debug-formatted.
§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>
where Self: UpperHex,

Causes self to use its UpperHex implementation when Debug-formatted.
§

fn fmt_list(self) -> FmtList<Self>
where &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
§

impl<T> IntoRequest<T> for T

§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
§

impl<L> LayerExt<L> for L

§

fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>
where L: Layer<S>,

Applies the layer to a service and wraps it in [Layered].
§

impl<T> Pipe for T
where T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
where R: 'a,

Borrows self and passes that borrow into the pipe function. Read more
§

fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R
where R: 'a,

Mutably borrows self and passes that borrow into the pipe function. Read more
§

fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
where Self: Borrow<B>, B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
where Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where Self: AsRef<U>, U: 'a + ?Sized, R: 'a,

Borrows self, then passes self.as_ref() into the pipe function.
§

fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
where Self: AsMut<U>, U: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.as_mut() into the pipe function.
§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where Self: Deref<Target = T>, T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, func: impl FnOnce(&'a mut T) -> R, ) -> R
where Self: DerefMut<Target = T> + Deref, T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe function.
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
§

impl<T> PossiblyOption<T> for T

§

fn to_option(self) -> Option<T>

Convert this object into an Option<T>
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release builds.
§

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Calls .tap_borrow() only in debug builds, and is erased in release builds.
§

fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Calls .tap_borrow_mut() only in debug builds, and is erased in release builds.
§

fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Calls .tap_ref() only in debug builds, and is erased in release builds.
§

fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Calls .tap_ref_mut() only in debug builds, and is erased in release builds.
§

fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release builds.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more