Struct UnifiedIncomingViewingKey
pub struct UnifiedIncomingViewingKey { /* private fields */ }
Expand description
A ZIP 316 unified incoming viewing key.
Implementations§
§impl UnifiedIncomingViewingKey
impl UnifiedIncomingViewingKey
pub fn new(
transparent: Option<ExternalIvk>,
sapling: Option<IncomingViewingKey>,
orchard: Option<IncomingViewingKey>,
) -> UnifiedIncomingViewingKey
pub fn new( transparent: Option<ExternalIvk>, sapling: Option<IncomingViewingKey>, orchard: Option<IncomingViewingKey>, ) -> UnifiedIncomingViewingKey
Construct a new unified incoming viewing key.
This method is only available when the test-dependencies
feature is enabled,
as derivation from the UFVK or deserialization from the serialized form should
be used instead.
pub fn decode<P>(
params: &P,
encoding: &str,
) -> Result<UnifiedIncomingViewingKey, String>where
P: Parameters,
pub fn decode<P>(
params: &P,
encoding: &str,
) -> Result<UnifiedIncomingViewingKey, String>where
P: Parameters,
Parses a UnifiedFullViewingKey
from its ZIP 316 string encoding.
pub fn encode<P>(&self, params: &P) -> Stringwhere
P: Parameters,
pub fn encode<P>(&self, params: &P) -> Stringwhere
P: Parameters,
Returns the string encoding of this UnifiedFullViewingKey
for the given network.
pub fn has_transparent(&self) -> bool
pub fn has_transparent(&self) -> bool
Returns whether this uivk has a transparent key item.
This method is available irrespective of whether the transparent-inputs
feature flag is enabled.
pub fn transparent(&self) -> &Option<ExternalIvk>
pub fn transparent(&self) -> &Option<ExternalIvk>
Returns the Transparent external IVK, if present.
pub fn has_sapling(&self) -> bool
pub fn has_sapling(&self) -> bool
Returns whether this uivk has a Sapling key item.
This method is available irrespective of whether the sapling
feature flag is enabled.
pub fn has_orchard(&self) -> bool
pub fn has_orchard(&self) -> bool
Returns whether this uivk has an Orchard key item.
This method is available irrespective of whether the orchard
feature flag is enabled.
pub fn address(
&self,
_j: DiversifierIndex,
request: UnifiedAddressRequest,
) -> Result<UnifiedAddress, AddressGenerationError>
pub fn address( &self, _j: DiversifierIndex, request: UnifiedAddressRequest, ) -> Result<UnifiedAddress, AddressGenerationError>
Attempts to derive the Unified Address for the given diversifier index and receiver types.
If request
is None, the address will be derived to contain a receiver for each item in
this UFVK.
Returns an error if the this key does not produce a valid receiver for a required receiver type at the given diversifier index.
pub fn find_address(
&self,
j: DiversifierIndex,
request: UnifiedAddressRequest,
) -> Result<(UnifiedAddress, DiversifierIndex), AddressGenerationError>
pub fn find_address( &self, j: DiversifierIndex, request: UnifiedAddressRequest, ) -> Result<(UnifiedAddress, DiversifierIndex), AddressGenerationError>
Searches the diversifier space starting at diversifier index j
for one which will produce
a valid address that conforms to the provided request, and returns that Unified Address
along with the index at which the valid diversifier was found.
If None
is specified for the request
parameter, a default request that Require
s a
receiver be present for each key item enabled by the feature flags in use will be used to
search the diversifier space.
Returns an Err(AddressGenerationError)
if no valid diversifier exists or if the features
required to satisfy the unified address request are not enabled.
pub fn default_address(
&self,
request: UnifiedAddressRequest,
) -> Result<(UnifiedAddress, DiversifierIndex), AddressGenerationError>
pub fn default_address( &self, request: UnifiedAddressRequest, ) -> Result<(UnifiedAddress, DiversifierIndex), AddressGenerationError>
Find the Unified Address corresponding to the smallest valid diversifier index, along with
that index. If request
is None, the address will be derived to contain a receiver for
each data item in this UFVK.
Returns an error if the this key does not produce a valid receiver for a required receiver type at any diversifier index.
pub fn receiver_requirements(
&self,
request: UnifiedAddressRequest,
) -> Result<ReceiverRequirements, AddressGenerationError>
pub fn receiver_requirements( &self, request: UnifiedAddressRequest, ) -> Result<ReceiverRequirements, AddressGenerationError>
Convenience method for choosing a set of receiver requirements based upon the given unified address request and the available items of this key.
Returns an error if the provided request cannot be satisfied in address generation using this key.
pub fn to_receiver_requirements(&self) -> Result<ReceiverRequirements, ()>
pub fn to_receiver_requirements(&self) -> Result<ReceiverRequirements, ()>
Constructs the ReceiverRequirements
that requires a receiver for each data item of this UIVK.
Returns Err
if the resulting request would not include a shielded receiver.
Trait Implementations§
§impl Clone for UnifiedIncomingViewingKey
impl Clone for UnifiedIncomingViewingKey
§fn clone(&self) -> UnifiedIncomingViewingKey
fn clone(&self) -> UnifiedIncomingViewingKey
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreAuto Trait Implementations§
impl Freeze for UnifiedIncomingViewingKey
impl RefUnwindSafe for UnifiedIncomingViewingKey
impl Send for UnifiedIncomingViewingKey
impl Sync for UnifiedIncomingViewingKey
impl Unpin for UnifiedIncomingViewingKey
impl UnwindSafe for UnifiedIncomingViewingKey
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Conv for T
impl<T> Conv for T
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self
to use its Binary
implementation when Debug
-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self
to use its Display
implementation when
Debug
-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self
to use its LowerExp
implementation when
Debug
-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self
to use its LowerHex
implementation when
Debug
-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self
to use its Octal
implementation when Debug
-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self
to use its Pointer
implementation when
Debug
-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self
to use its UpperExp
implementation when
Debug
-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self
to use its UpperHex
implementation when
Debug
-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T
in a tonic::Request
§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Layered
].§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
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) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
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
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
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
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
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
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self
, then passes self.deref()
into the pipe function.§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B>
of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B>
of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R>
view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R>
view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target
of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target
of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap()
only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut()
only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.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
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut()
only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.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
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut()
only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref()
only in debug builds, and is erased in release
builds.