Enum WalletError

Source
pub enum WalletError {
Show 22 variants AccountState(String), NoKeyPair, EcdsaError(Error), HexError(FromHexError), IoError(Error), NoDefaultAccount, SignHashError, CryptoError(CryptoError), TransactionError(TransactionError), BuilderError(BuilderError), VerifyError, LedgerError(String), NoAccounts, YubiHsmError(String), ProviderError(ProviderError), DecryptionError(String), SigningError(String), FileError(String), ParseError(String), ImportError(String), InvalidPassword, DeserializationError(String),
}
Expand description

Errors that may occur within wallet operations.

This enum encompasses a range of errors that can arise when interacting with cryptocurrency wallets, including but not limited to account state issues, cryptographic errors, and IO operations. It is designed to be comprehensive, covering errors from underlying libraries (such as ECDSA operations, hex encoding/decoding) as well as wallet-specific errors like missing key pairs or default accounts.

§Variants

  • AccountState: Represents errors related to an account’s state, such as when an account cannot be found or is in an invalid state for the requested operation.
  • NoKeyPair: Indicates that a key pair was expected but none was found.
  • EcdsaError: Wraps errors from the ecdsa crate, typically related to signature operations.
  • HexError: Wraps errors from the hex crate, often arising during hex encoding or decoding.
  • IoError: Wraps standard IO errors that might occur during file operations.
  • NoDefaultAccount: Signals that a default account was expected but not set.
  • InvalidKeyPair: General error for when a key pair is invalid or fails validation.
  • CryptoError: Wraps cryptographic errors, potentially from operations like hashing or encryption.
  • TransactionError: Encapsulates errors that may occur during transaction creation or processing.
  • BuilderError: Wraps errors that occur during the construction of complex objects, possibly due to invalid parameters.
  • DecryptionError: Indicates an error occurred during account decryption.
  • SigningError: Indicates an error occurred during transaction signing.
  • FileError: Indicates an error occurred during file operations.
  • ParseError: Indicates an error occurred during parsing operations.
  • ImportError: Indicates an error occurred during key import operations.
  • InvalidPassword: Indicates that an invalid password was provided.
  • NoAccounts: Indicates that no accounts were found in the wallet.
  • YubiHsmError: Wraps errors related to YubiHSM operations.
  • ProviderError: Wraps errors from the RPC provider.

§Examples

Handling a WalletError might look like this:

let result = some_wallet_operation();
    match result {
        Ok(_) => println!("Operation successful"),
        Err(wallets::WalletError::NoKeyPair) => println!("Key pair missing"),
        Err(e) => println!("An error occurred: {:?}", e),
    }

This approach allows for precise error handling and reporting, facilitating debugging and user feedback.

Variants§

§

AccountState(String)

Error indicating an issue with the account’s state, such as being locked or insufficient funds. The contained message provides additional detail.

§

NoKeyPair

Indicates that no key pair is available for a cryptographic operation, possibly because it has not been generated or imported.

§

EcdsaError(Error)

Wraps errors from the ecdsa crate, related to ECDSA signature operations. This could include errors during signature generation or verification.

§

HexError(FromHexError)

Represents errors encountered during hex encoding or decoding operations, such as an invalid hex character or incorrect string length.

§

IoError(Error)

Encapsulates errors arising from IO operations, like reading from or writing to files. This includes file not found, permissions issues, and other file-related errors.

§

NoDefaultAccount

Signifies that the wallet does not have a designated default account, which might be required for certain operations or configurations.

§

SignHashError

Used when a key pair is found to be invalid, such as when a private key does not match the public key, or the key pair cannot be used for signing due to corruption.

§

CryptoError(CryptoError)

Wraps generic cryptographic errors that might occur during operations such as encryption, decryption, hashing, or key generation.

§

TransactionError(TransactionError)

Covers errors related to the creation, signing, or broadcasting of transactions, including invalid transaction formats, insufficient gas, or nonce issues.

§

BuilderError(BuilderError)

Indicates issues encountered during the construction or configuration of wallet components, such as invalid parameters or configurations that cannot be applied.

§

VerifyError

Indicates an invalid signature

§

LedgerError(String)

Errors related to Ledger hardware wallet operations

§

NoAccounts

Error indicating no accounts in wallet

§

YubiHsmError(String)

Errors related to YubiHSM operations

§

ProviderError(ProviderError)

Errors from the RPC provider

§

DecryptionError(String)

Errors during account decryption

§

SigningError(String)

Errors during transaction signing

§

FileError(String)

Errors during file operations

§

ParseError(String)

Errors during parsing operations

§

ImportError(String)

Errors during key import operations

§

InvalidPassword

Invalid password provided

§

DeserializationError(String)

Errors during deserialization

Trait Implementations§

Source§

impl Debug for WalletError

Source§

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

Formats the value using the given formatter. Read more
Source§

impl Display for WalletError

Source§

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

Formats the value using the given formatter. Read more
Source§

impl Error for WalletError

Source§

fn source(&self) -> Option<&(dyn Error + 'static)>

Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · Source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
Source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type-based access to context intended for error reports. Read more
Source§

impl From<BuilderError> for WalletError

Source§

fn from(source: BuilderError) -> Self

Converts to this type from the input type.
Source§

impl From<CryptoError> for WalletError

Source§

fn from(source: CryptoError) -> Self

Converts to this type from the input type.
Source§

impl From<Error> for WalletError

Source§

fn from(source: Error) -> Self

Converts to this type from the input type.
Source§

impl From<Error> for WalletError

Source§

fn from(source: Error) -> Self

Converts to this type from the input type.
Source§

impl From<FromHexError> for WalletError

Source§

fn from(source: FromHexError) -> Self

Converts to this type from the input type.
Source§

impl From<ProviderError> for WalletError

Source§

fn from(source: ProviderError) -> Self

Converts to this type from the input type.
Source§

impl From<TransactionError> for WalletError

Source§

fn from(source: TransactionError) -> Self

Converts to this type from the input type.
Source§

impl From<WalletError> for SignerError

Source§

fn from(source: WalletError) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

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

Source§

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

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

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> 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> PolicyExt for T
where T: ?Sized,

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] only if self and other return Action::Follow. Read more
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
§

impl<T> ToStringFallible for T
where T: Display,

§

fn try_to_string(&self) -> Result<String, TryReserveError>

ToString::to_string, but without panic on OOM.

Source§

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

Source§

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

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

impl<T> WithSubscriber for T

Source§

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

fn with_current_subscriber(self) -> WithDispatch<Self>

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

impl<T> ErasedDestructor for T
where T: 'static,