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 theecdsa
crate, typically related to signature operations.HexError
: Wraps errors from thehex
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
impl Debug for WalletError
Source§impl Display for WalletError
impl Display for WalletError
Source§impl Error for WalletError
impl Error for WalletError
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 From<BuilderError> for WalletError
impl From<BuilderError> for WalletError
Source§fn from(source: BuilderError) -> Self
fn from(source: BuilderError) -> Self
Source§impl From<CryptoError> for WalletError
impl From<CryptoError> for WalletError
Source§fn from(source: CryptoError) -> Self
fn from(source: CryptoError) -> Self
Source§impl From<Error> for WalletError
impl From<Error> for WalletError
Source§impl From<Error> for WalletError
impl From<Error> for WalletError
Source§impl From<FromHexError> for WalletError
impl From<FromHexError> for WalletError
Source§fn from(source: FromHexError) -> Self
fn from(source: FromHexError) -> Self
Source§impl From<ProviderError> for WalletError
impl From<ProviderError> for WalletError
Source§fn from(source: ProviderError) -> Self
fn from(source: ProviderError) -> Self
Source§impl From<TransactionError> for WalletError
impl From<TransactionError> for WalletError
Source§fn from(source: TransactionError) -> Self
fn from(source: TransactionError) -> Self
Source§impl From<WalletError> for SignerError
impl From<WalletError> for SignerError
Source§fn from(source: WalletError) -> Self
fn from(source: WalletError) -> Self
Auto Trait Implementations§
impl Freeze for WalletError
impl !RefUnwindSafe for WalletError
impl Send for WalletError
impl Sync for WalletError
impl Unpin for WalletError
impl !UnwindSafe for WalletError
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
§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> 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 more§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string
, but without panic on OOM.