SignerRecoverable

Trait SignerRecoverable 

pub trait SignerRecoverable {
    // Required methods
    fn recover_signer(&self) -> Result<Address, RecoveryError>;
    fn recover_signer_unchecked(&self) -> Result<Address, RecoveryError>;

    // Provided methods
    fn recover_with_buf(
        &self,
        buf: &mut Vec<u8>,
    ) -> Result<Address, RecoveryError> { ... }
    fn recover_unchecked_with_buf(
        &self,
        buf: &mut Vec<u8>,
    ) -> Result<Address, RecoveryError> { ... }
    fn try_into_recovered(self) -> Result<Recovered<Self>, RecoveryError>
       where Self: Sized { ... }
    fn try_into_recovered_unchecked(
        self,
    ) -> Result<Recovered<Self>, RecoveryError>
       where Self: Sized { ... }
    fn try_into_recovered_with_buf(
        self,
        buf: &mut Vec<u8>,
    ) -> Result<Recovered<Self>, RecoveryError>
       where Self: Sized { ... }
    fn try_into_recovered_unchecked_with_buf(
        self,
        buf: &mut Vec<u8>,
    ) -> Result<Recovered<Self>, RecoveryError>
       where Self: Sized { ... }
    fn try_to_recovered_ref(&self) -> Result<Recovered<&Self>, RecoveryError> { ... }
    fn try_to_recovered_ref_with_buf(
        &self,
        buf: &mut Vec<u8>,
    ) -> Result<Recovered<&Self>, RecoveryError> { ... }
    fn try_to_recovered_ref_unchecked(
        &self,
    ) -> Result<Recovered<&Self>, RecoveryError> { ... }
    fn try_to_recovered_ref_unchecked_with_buf(
        &self,
        buf: &mut Vec<u8>,
    ) -> Result<Recovered<&Self>, RecoveryError> { ... }
}
Expand description

A type that can recover the signer of a transaction.

This is a helper trait that only provides the ability to recover the signer (address) of a transaction.

Required Methods§

fn recover_signer(&self) -> Result<Address, RecoveryError>

Recover signer from signature and hash.

Returns an error if the transaction’s signature is invalid following EIP-2.

Note:

This can fail for some early ethereum mainnet transactions pre EIP-2, use Self::recover_signer_unchecked if you want to recover the signer without ensuring that the signature has a low s value.

fn recover_signer_unchecked(&self) -> Result<Address, RecoveryError>

Recover signer from signature and hash without ensuring that the signature has a low s value.

Returns an error if the transaction’s signature is invalid.

Provided Methods§

fn recover_with_buf(&self, buf: &mut Vec<u8>) -> Result<Address, RecoveryError>

Same as SignerRecoverable::recover_signer but receives a buffer to operate on for encoding. This is useful during batch recovery of transactions to avoid allocating a new buffer for each transaction.

Caution: it is expected that implementations always clear this buffer before using it.

fn recover_unchecked_with_buf( &self, buf: &mut Vec<u8>, ) -> Result<Address, RecoveryError>

Same as SignerRecoverable::recover_signer_unchecked but receives a buffer to operate on for encoding. This is useful during batch recovery of historical transactions to avoid allocating a new buffer for each transaction.

Caution: it is expected that implementations always clear this buffer before using it.

fn try_into_recovered(self) -> Result<Recovered<Self>, RecoveryError>
where Self: Sized,

Recover the signer via SignerRecoverable::recover_signer and returns a Recovered<Self>

fn try_into_recovered_unchecked(self) -> Result<Recovered<Self>, RecoveryError>
where Self: Sized,

Recover the signer via SignerRecoverable::recover_signer_unchecked and returns a Recovered<&Self>

fn try_into_recovered_with_buf( self, buf: &mut Vec<u8>, ) -> Result<Recovered<Self>, RecoveryError>
where Self: Sized,

Same as SignerRecoverable::try_into_recovered but receives a buffer to operate on for encoding. This is useful during batch recovery of transactions to avoid allocating a new buffer for each transaction.

Caution: it is expected that implementations always clear this buffer before using it.

fn try_into_recovered_unchecked_with_buf( self, buf: &mut Vec<u8>, ) -> Result<Recovered<Self>, RecoveryError>
where Self: Sized,

Same as SignerRecoverable::try_into_recovered_unchecked but receives a buffer to operate on for encoding. This is useful during batch recovery of historical transactions to avoid allocating a new buffer for each transaction.

Caution: it is expected that implementations always clear this buffer before using it.

fn try_to_recovered_ref(&self) -> Result<Recovered<&Self>, RecoveryError>

Recover the signer via SignerRecoverable::recover_signer and returns a Recovered<&Self>

fn try_to_recovered_ref_with_buf( &self, buf: &mut Vec<u8>, ) -> Result<Recovered<&Self>, RecoveryError>

Same as SignerRecoverable::try_to_recovered_ref but receives a buffer to operate on for encoding. This is useful during batch recovery of transactions to avoid allocating a new buffer for each transaction.

Caution: it is expected that implementations always clear this buffer before using it.

fn try_to_recovered_ref_unchecked( &self, ) -> Result<Recovered<&Self>, RecoveryError>

Recover the signer via SignerRecoverable::recover_signer_unchecked and returns a Recovered<&Self>

fn try_to_recovered_ref_unchecked_with_buf( &self, buf: &mut Vec<u8>, ) -> Result<Recovered<&Self>, RecoveryError>

Same as SignerRecoverable::try_to_recovered_ref_unchecked but receives a buffer to operate on for encoding. This is useful during batch recovery of historical transactions to avoid allocating a new buffer for each transaction.

Caution: it is expected that implementations always clear this buffer before using it.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

§

impl SignerRecoverable for OpPooledTransaction

Available on crate feature k256 only.
§

impl SignerRecoverable for OpTxEnvelope

Available on crate feature k256 only.

Implementors§

Source§

impl<B, T> SignerRecoverable for Extended<B, T>

§

impl<Eip4844> SignerRecoverable for EthereumTxEnvelope<Eip4844>
where Eip4844: RlpEcdsaEncodableTx + SignableTransaction<Signature>,

Available on crate features secp256k1 or k256 only.
§

impl<T> SignerRecoverable for Sealed<T>

§

impl<T> SignerRecoverable for WithEncoded<T>

§

impl<T> SignerRecoverable for Signed<T>
where T: SignableTransaction<Signature>,

Available on crate features secp256k1 or k256 only.