Enum SignerError

Source
pub enum SignerError {
    InvalidPassphrase(String),
    InvalidAddress,
    BuilderError(BuilderError),
    WalletError(WalletError),
    CryptoError(CryptoError),
    RustcFromHexError(FromHexError),
    TypeError(TypeError),
}
Expand description

Represents errors that can occur within the signing process.

This enum encapsulates a variety of errors that may arise when performing operations related to signing transactions, messages, or performing cryptographic operations within a blockchain context. It includes errors related to invalid input data (like passphrases or addresses), failures in underlying cryptographic operations, and errors from external libraries used for tasks such as hex encoding/decoding or type conversion.

Variants of this enum are designed to be converted from errors thrown by these operations, allowing for a unified error handling interface throughout the signing process.

§Variants

  • InvalidPassphrase: Occurs when a passphrase does not meet validation criteria.
  • InvalidAddress: Triggered by malformed blockchain addresses.
  • BuilderError: Wraps errors from the construction of cryptographic objects.
  • WalletError: Encompasses errors from wallet operations.
  • FromHexError: Pertains to failures in hexadecimal to binary data conversion.
  • CryptoError: Covers general cryptographic failures.
  • RustcFromHexError: Specific to hex decoding issues via rustc_serialize.
  • TypeError: Indicates failures in type conversion or coercion.

§Examples

Handling a SignerError in a function that performs signing operations might look like this:

use neo3::prelude::*;
 async fn sign_data(data: &[u8]) -> Result<(), wallets::SignerError> {
    // Example function body
    Ok(())
}

async fn example_usage() {
    let data = b"example data";

    match sign_data(data).await {
        Ok(_) => println!("Data signed successfully"),
        Err(e) => match e {
            wallets::SignerError::InvalidPassphrase(_) => println!("Invalid passphrase provided"),
            wallets::SignerError::InvalidAddress => println!("Invalid address"),
            // Handle other errors accordingly
            _ => println!("An error occurred: {:?}", e),
        },
    }
}

Variants§

§

InvalidPassphrase(String)

Represents an error when an invalid passphrase is provided. This could happen during the decryption of a private key or any operation that requires passphrase verification.

§

InvalidAddress

Indicates that the provided address is not valid. This error might occur if an address does not comply with expected formats or checksums.

§

BuilderError(BuilderError)

Wraps errors related to building or configuring objects, possibly during the setup of cryptographic operations or when constructing complex objects that have specific requirements.

§

WalletError(WalletError)

Encapsulates errors that originate from wallet operations. This can include issues with creating, loading, or performing transactions with wallets.

§

CryptoError(CryptoError)

Covers general cryptographic errors such as failures in hashing, signature generation, or encryption/decryption processes.

§

RustcFromHexError(FromHexError)

An error for hex decoding issues.

§

TypeError(TypeError)

Indicates a failure related to type conversion or coercion. This variant is useful for signaling issues when trying to convert between incompatible types, such as when deserializing data into a specific structure.

Trait Implementations§

Source§

impl Debug for SignerError

Source§

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

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

impl Display for SignerError

Source§

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

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

impl Error for SignerError

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 SignerError

Source§

fn from(source: BuilderError) -> Self

Converts to this type from the input type.
Source§

impl From<CryptoError> for SignerError

Source§

fn from(source: CryptoError) -> Self

Converts to this type from the input type.
Source§

impl From<FromHexError> for SignerError

Source§

fn from(source: FromHexError) -> Self

Converts to this type from the input type.
Source§

impl From<TypeError> for SignerError

Source§

fn from(source: TypeError) -> 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,