pub struct ViewServiceClient<T> { /* private fields */ }
Available on crate feature rpc only.
Expand description

The view RPC is used by a view client, who wants to do some transaction-related actions, to request data from a view service, which is responsible for synchronizing and scanning the public chain state with one or more full viewing keys.

Implementations§

source§

impl ViewServiceClient<Channel>

source

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

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

source§

impl<T> ViewServiceClient<T>
where T: GrpcService<BoxBody>, 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 ) -> ViewServiceClient<InterceptedService<T, F>>
where F: Interceptor, T::ResponseBody: Default, T: Service<Request<BoxBody>, Response = Response<<T as GrpcService<BoxBody>>::ResponseBody>>, <T as Service<Request<BoxBody>>>::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 status( &mut self, request: impl IntoRequest<StatusRequest> ) -> Result<Response<StatusResponse>, Status>

Get current status of chain sync

source

pub async fn status_stream( &mut self, request: impl IntoRequest<StatusStreamRequest> ) -> Result<Response<Streaming<StatusStreamResponse>>, Status>

Stream sync status updates until the view service has caught up with the chain. Returns a stream of StatusStreamResponses.

source

pub async fn notes( &mut self, request: impl IntoRequest<NotesRequest> ) -> Result<Response<Streaming<NotesResponse>>, Status>

Queries for notes that have been accepted by the chain. Returns a stream of NotesResponses.

source

pub async fn notes_for_voting( &mut self, request: impl IntoRequest<NotesForVotingRequest> ) -> Result<Response<Streaming<NotesForVotingResponse>>, Status>

Returns a stream of NotesForVotingResponses.

source

pub async fn assets( &mut self, request: impl IntoRequest<AssetsRequest> ) -> Result<Response<Streaming<AssetsResponse>>, Status>

Queries for metadata about known assets. Returns a stream of AssetsResponses.

source

pub async fn asset_metadata_by_id( &mut self, request: impl IntoRequest<AssetMetadataByIdRequest> ) -> Result<Response<AssetMetadataByIdResponse>, Status>

Query for metadata about a specific asset, by asset ID.

This is the same as the method on the shielded pool’s QueryService, but exposing it here allows a view server to provide more specific or opinionated asset metadata – like using an asset registry to provide tickers, symbols, etc.

source

pub async fn app_parameters( &mut self, request: impl IntoRequest<AppParametersRequest> ) -> Result<Response<AppParametersResponse>, Status>

Query for the current app parameters.

source

pub async fn gas_prices( &mut self, request: impl IntoRequest<GasPricesRequest> ) -> Result<Response<GasPricesResponse>, Status>

Query for the current gas prices.

source

pub async fn fmd_parameters( &mut self, request: impl IntoRequest<FmdParametersRequest> ) -> Result<Response<FmdParametersResponse>, Status>

Query for the current FMD parameters.

source

pub async fn address_by_index( &mut self, request: impl IntoRequest<AddressByIndexRequest> ) -> Result<Response<AddressByIndexResponse>, Status>

Query for an address given an address index

source

pub async fn wallet_id( &mut self, request: impl IntoRequest<WalletIdRequest> ) -> Result<Response<WalletIdResponse>, Status>

Query for wallet id

source

pub async fn index_by_address( &mut self, request: impl IntoRequest<IndexByAddressRequest> ) -> Result<Response<IndexByAddressResponse>, Status>

Query for an address given an address index

source

pub async fn ephemeral_address( &mut self, request: impl IntoRequest<EphemeralAddressRequest> ) -> Result<Response<EphemeralAddressResponse>, Status>

Query for an ephemeral address

source

pub async fn balances( &mut self, request: impl IntoRequest<BalancesRequest> ) -> Result<Response<Streaming<BalancesResponse>>, Status>

Query for balance of a given address. Returns a stream of BalancesResponses.

source

pub async fn note_by_commitment( &mut self, request: impl IntoRequest<NoteByCommitmentRequest> ) -> Result<Response<NoteByCommitmentResponse>, Status>

Query for a note by its note commitment, optionally waiting until the note is detected.

source

pub async fn swap_by_commitment( &mut self, request: impl IntoRequest<SwapByCommitmentRequest> ) -> Result<Response<SwapByCommitmentResponse>, Status>

Query for a swap by its swap commitment, optionally waiting until the swap is detected.

source

pub async fn unclaimed_swaps( &mut self, request: impl IntoRequest<UnclaimedSwapsRequest> ) -> Result<Response<Streaming<UnclaimedSwapsResponse>>, Status>

Query for all unclaimed swaps.

source

pub async fn nullifier_status( &mut self, request: impl IntoRequest<NullifierStatusRequest> ) -> Result<Response<NullifierStatusResponse>, Status>

Query for whether a nullifier has been spent, optionally waiting until it is spent.

source

pub async fn transaction_info_by_hash( &mut self, request: impl IntoRequest<TransactionInfoByHashRequest> ) -> Result<Response<TransactionInfoByHashResponse>, Status>

Query for a given transaction by its hash.

source

pub async fn transaction_info( &mut self, request: impl IntoRequest<TransactionInfoRequest> ) -> Result<Response<Streaming<TransactionInfoResponse>>, Status>

Query for the full transactions in the given range of blocks. Returns a stream of TransactionInfoResponses.

source

pub async fn owned_position_ids( &mut self, request: impl IntoRequest<OwnedPositionIdsRequest> ) -> Result<Response<Streaming<OwnedPositionIdsResponse>>, Status>

Query for owned position IDs for the given trading pair and in the given position state.

source

pub async fn transaction_planner( &mut self, request: impl IntoRequest<TransactionPlannerRequest> ) -> Result<Response<TransactionPlannerResponse>, Status>

Translates a high-level intent (“send X funds to Y address”) into a complete transaction plan.

source

pub async fn witness( &mut self, request: impl IntoRequest<WitnessRequest> ) -> Result<Response<WitnessResponse>, Status>

Returns authentication data for the given transaction plan.

This method takes a complete transaction plan, so that the client can get a consistent set of authentication paths to a common root for the entire transaction. (Otherwise, if a client made multiple requests, the wallet service could have advanced the state commitment tree between queries).

source

pub async fn witness_and_build( &mut self, request: impl IntoRequest<WitnessAndBuildRequest> ) -> Result<Response<Streaming<WitnessAndBuildResponse>>, Status>

Like Witness, but immediately uses the witness data to build (prove) the transaction.

This method is useful for clients that can’t easily do proving themselves, either because they’re not written in Rust and can’t easily import the proving code, or because they don’t have access to proving keys, or some other reason.

This method streams status updates to the caller before finally returning the transaction.

source

pub async fn authorize_and_build( &mut self, request: impl IntoRequest<AuthorizeAndBuildRequest> ) -> Result<Response<Streaming<AuthorizeAndBuildResponse>>, Status>

Authorize a transaction plan and build the transaction.

This method is only supported on view servers that have access to a custody service. Otherwise, it will fail.

Penumbra’s transaction authorization mechanism is designed so transactions can be signed and built (proved) concurrently. This allows implementations to, e.g., start proving optimistically while presenting the user with an approval dialog.

This method streams status updates to the caller before finally returning the transaction.

source

pub async fn broadcast_transaction( &mut self, request: impl IntoRequest<BroadcastTransactionRequest> ) -> Result<Response<Streaming<BroadcastTransactionResponse>>, Status>

Broadcast a transaction to the network, optionally waiting for full confirmation.

This method streams status updates to the caller before finally returning confirmation.

source

pub async fn delegations_by_address_index( &mut self, request: impl IntoRequest<DelegationsByAddressIndexRequest> ) -> Result<Response<Streaming<DelegationsByAddressIndexResponse>>, Status>

Get delegation tokens for a given address index. Each delegation token will be represented by a ValueView with the given address index’s balance of that token. Each ValueView’s extended_metadata field will contain the ValidatorInfo of the delegated validator.

source

pub async fn unbonding_tokens_by_address_index( &mut self, request: impl IntoRequest<UnbondingTokensByAddressIndexRequest> ) -> Result<Response<Streaming<UnbondingTokensByAddressIndexResponse>>, Status>

Get unbonding tokens for the given address index, optionally filtered by whether the tokens are currently claimable.

source

pub async fn auctions( &mut self, request: impl IntoRequest<AuctionsRequest> ) -> Result<Response<Streaming<AuctionsResponse>>, Status>

Gets the auctions controlled by the user’s wallet.

Trait Implementations§

source§

impl<T: Clone> Clone for ViewServiceClient<T>

source§

fn clone(&self) -> ViewServiceClient<T>

Returns a copy of the value. Read more
1.0.0 · source§

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

Performs copy-assignment from source. Read more
source§

impl<T: Debug> Debug for ViewServiceClient<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 ViewServiceClient<T>

§

impl<T> RefUnwindSafe for ViewServiceClient<T>
where T: RefUnwindSafe,

§

impl<T> Send for ViewServiceClient<T>
where T: Send,

§

impl<T> Sync for ViewServiceClient<T>
where T: Sync,

§

impl<T> Unpin for ViewServiceClient<T>
where T: Unpin,

§

impl<T> UnwindSafe for ViewServiceClient<T>
where 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
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
§

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> 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> FromRef<T> for T
where T: Clone,

§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
§

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> IntoRequest<T> for T

source§

fn into_request(self) -> Request<T>

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

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
source§

impl<T> Same for T

§

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,

§

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>,

§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

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

§

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