pub enum Error<DataSourceError, CommitmentTreeError, SelectionError, FeeError, ChangeErrT, NoteRefT> {
Show 21 variants
DataSource(DataSourceError),
CommitmentTree(ShardTreeError<CommitmentTreeError>),
NoteSelection(SelectionError),
Change(ChangeError<ChangeErrT, NoteRefT>),
Proposal(ProposalError),
ProposalNotSupported,
AccountIdNotRecognized,
KeyNotRecognized,
AccountCannotSpend,
BalanceError(BalanceError),
InsufficientFunds {
available: Zatoshis,
required: Zatoshis,
},
ScanRequired,
Builder(Error<FeeError>),
MemoForbidden,
UnsupportedChangeType(PoolType),
NoSupportedReceivers(Box<UnifiedAddress>),
KeyNotAvailable(PoolType),
NoteMismatch(NoteId),
Address(ConversionError<&'static str>),
AddressNotRecognized(TransparentAddress),
Pczt(PcztError),
}Expand description
Errors that can occur as a consequence of wallet operations.
Variants§
DataSource(DataSourceError)
An error occurred retrieving data from the underlying data source
CommitmentTree(ShardTreeError<CommitmentTreeError>)
An error in computations involving the note commitment trees.
NoteSelection(SelectionError)
An error in note selection
Change(ChangeError<ChangeErrT, NoteRefT>)
An error in change selection during transaction proposal construction
Proposal(ProposalError)
An error in transaction proposal construction
ProposalNotSupported
The proposal was structurally valid, but tried to do one of these unsupported things:
- spend a prior shielded output;
- pay to an output pool for which the corresponding feature is not enabled;
- pay to a TEX address if the “transparent-inputs” feature is not enabled.
AccountIdNotRecognized
No account could be found corresponding to a provided ID.
KeyNotRecognized
No account could be found corresponding to a provided spending key.
AccountCannotSpend
The given account cannot be used for spending, because it is unable to maintain an accurate balance.
BalanceError(BalanceError)
Zcash amount computation encountered an overflow or underflow.
InsufficientFunds
Unable to create a new spend because the wallet balance is not sufficient.
ScanRequired
The wallet must first perform a scan of the blockchain before other operations can be performed.
Builder(Error<FeeError>)
An error occurred building a new transaction.
MemoForbidden
It is forbidden to provide a memo when constructing a transparent output.
UnsupportedChangeType(PoolType)
Attempted to send change to an unsupported pool.
This is indicative of a programming error; execution of a transaction proposal that presumes support for the specified pool was performed using an application that does not provide such support.
NoSupportedReceivers(Box<UnifiedAddress>)
Attempted to create a spend to an unsupported Unified Address receiver
KeyNotAvailable(PoolType)
A proposed transaction cannot be built because it requires spending an input of a type for which a key required to construct the transaction is not available.
NoteMismatch(NoteId)
A note being spent does not correspond to either the internal or external full viewing key for an account.
Address(ConversionError<&'static str>)
An error occurred parsing the address from a payment request.
AddressNotRecognized(TransparentAddress)
transparent-inputs only.The address associated with a record being inserted was not recognized as belonging to the wallet.
Pczt(PcztError)
pczt only.An error occurred while working with PCZTs.
Trait Implementations§
Source§impl<DataSourceError: Debug, CommitmentTreeError: Debug, SelectionError: Debug, FeeError: Debug, ChangeErrT: Debug, NoteRefT: Debug> Debug for Error<DataSourceError, CommitmentTreeError, SelectionError, FeeError, ChangeErrT, NoteRefT>
impl<DataSourceError: Debug, CommitmentTreeError: Debug, SelectionError: Debug, FeeError: Debug, ChangeErrT: Debug, NoteRefT: Debug> Debug for Error<DataSourceError, CommitmentTreeError, SelectionError, FeeError, ChangeErrT, NoteRefT>
Source§impl<DE, TE, SE, FE, CE, N> Error for Error<DE, TE, SE, FE, CE, N>
impl<DE, TE, SE, FE, CE, N> Error for Error<DE, TE, SE, FE, CE, N>
Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
Source§impl<DE, TE, SE, FE, CE, N> From<BalanceError> for Error<DE, TE, SE, FE, CE, N>
impl<DE, TE, SE, FE, CE, N> From<BalanceError> for Error<DE, TE, SE, FE, CE, N>
Source§fn from(e: BalanceError) -> Self
fn from(e: BalanceError) -> Self
Source§impl<DE, TE, SE, FE, CE, N> From<ConversionError<&'static str>> for Error<DE, TE, SE, FE, CE, N>
impl<DE, TE, SE, FE, CE, N> From<ConversionError<&'static str>> for Error<DE, TE, SE, FE, CE, N>
Source§fn from(value: ConversionError<&'static str>) -> Self
fn from(value: ConversionError<&'static str>) -> Self
Source§impl<DE, TE, SE, FE, CE, N> From<Error> for Error<DE, TE, SE, FE, CE, N>
Available on crate feature pczt only.
impl<DE, TE, SE, FE, CE, N> From<Error> for Error<DE, TE, SE, FE, CE, N>
pczt only.Source§impl<DE, TE, SE, FE, CE, N> From<Error> for Error<DE, TE, SE, FE, CE, N>
Available on crate feature pczt only.
impl<DE, TE, SE, FE, CE, N> From<Error> for Error<DE, TE, SE, FE, CE, N>
pczt only.Source§impl<DE, TE, SE, FE, CE, N> From<Error> for Error<DE, TE, SE, FE, CE, N>
Available on crate feature pczt only.
impl<DE, TE, SE, FE, CE, N> From<Error> for Error<DE, TE, SE, FE, CE, N>
pczt only.Source§impl<DE, TE, SE, FE, CE, N> From<InputSelectorError<DE, SE, CE, N>> for Error<DE, TE, SE, FE, CE, N>
impl<DE, TE, SE, FE, CE, N> From<InputSelectorError<DE, SE, CE, N>> for Error<DE, TE, SE, FE, CE, N>
Source§fn from(e: InputSelectorError<DE, SE, CE, N>) -> Self
fn from(e: InputSelectorError<DE, SE, CE, N>) -> Self
Source§impl<DE, TE, SE, FE, CE, N> From<OrchardError> for Error<DE, TE, SE, FE, CE, N>
Available on crate feature pczt only.
impl<DE, TE, SE, FE, CE, N> From<OrchardError> for Error<DE, TE, SE, FE, CE, N>
pczt only.Source§fn from(e: OrchardError) -> Self
fn from(e: OrchardError) -> Self
Source§impl<DE, TE, SE, FE, CE, N> From<PcztError> for Error<DE, TE, SE, FE, CE, N>
Available on crate feature pczt only.
impl<DE, TE, SE, FE, CE, N> From<PcztError> for Error<DE, TE, SE, FE, CE, N>
pczt only.Source§impl<DE, TE, SE, FE, CE, N> From<ProposalError> for Error<DE, TE, SE, FE, CE, N>
impl<DE, TE, SE, FE, CE, N> From<ProposalError> for Error<DE, TE, SE, FE, CE, N>
Source§fn from(e: ProposalError) -> Self
fn from(e: ProposalError) -> Self
Source§impl<DE, TE, SE, FE, CE, N> From<SaplingError> for Error<DE, TE, SE, FE, CE, N>
Available on crate feature pczt only.
impl<DE, TE, SE, FE, CE, N> From<SaplingError> for Error<DE, TE, SE, FE, CE, N>
pczt only.Source§fn from(e: SaplingError) -> Self
fn from(e: SaplingError) -> Self
Source§impl<DE, TE, SE, FE, CE, N> From<ShardTreeError<TE>> for Error<DE, TE, SE, FE, CE, N>
impl<DE, TE, SE, FE, CE, N> From<ShardTreeError<TE>> for Error<DE, TE, SE, FE, CE, N>
Source§fn from(e: ShardTreeError<TE>) -> Self
fn from(e: ShardTreeError<TE>) -> Self
Source§impl<DE, TE, SE, FE, CE, N> From<TransparentError> for Error<DE, TE, SE, FE, CE, N>
Available on crate feature pczt only.
impl<DE, TE, SE, FE, CE, N> From<TransparentError> for Error<DE, TE, SE, FE, CE, N>
pczt only.Source§fn from(e: TransparentError) -> Self
fn from(e: TransparentError) -> Self
Auto Trait Implementations§
impl<DataSourceError, CommitmentTreeError, SelectionError, FeeError, ChangeErrT, NoteRefT> Freeze for Error<DataSourceError, CommitmentTreeError, SelectionError, FeeError, ChangeErrT, NoteRefT>
impl<DataSourceError, CommitmentTreeError, SelectionError, FeeError, ChangeErrT, NoteRefT> !RefUnwindSafe for Error<DataSourceError, CommitmentTreeError, SelectionError, FeeError, ChangeErrT, NoteRefT>
impl<DataSourceError, CommitmentTreeError, SelectionError, FeeError, ChangeErrT, NoteRefT> Send for Error<DataSourceError, CommitmentTreeError, SelectionError, FeeError, ChangeErrT, NoteRefT>
impl<DataSourceError, CommitmentTreeError, SelectionError, FeeError, ChangeErrT, NoteRefT> Sync for Error<DataSourceError, CommitmentTreeError, SelectionError, FeeError, ChangeErrT, NoteRefT>
impl<DataSourceError, CommitmentTreeError, SelectionError, FeeError, ChangeErrT, NoteRefT> Unpin for Error<DataSourceError, CommitmentTreeError, SelectionError, FeeError, ChangeErrT, NoteRefT>
impl<DataSourceError, CommitmentTreeError, SelectionError, FeeError, ChangeErrT, NoteRefT> !UnwindSafe for Error<DataSourceError, CommitmentTreeError, SelectionError, FeeError, ChangeErrT, NoteRefT>
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<E> ErrorReport for Ewhere
E: Error + 'static,
impl<E> ErrorReport for Ewhere
E: Error + 'static,
Source§fn report(&self) -> Report<ReportHelper<'_>>
fn report(&self) -> Report<ReportHelper<'_>>
Source§impl<T> FmtForward for T
impl<T> FmtForward for T
Source§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.Source§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.Source§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.Source§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.Source§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.Source§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.Source§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.Source§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.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::RequestSource§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Source§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 moreSource§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 moreSource§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
Source§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
Source§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.Source§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.Source§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.Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> Tap for T
impl<T> Tap for T
Source§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 moreSource§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 moreSource§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 moreSource§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 moreSource§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 moreSource§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 moreSource§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.Source§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.Source§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.Source§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.Source§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.Source§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.Source§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.