Signer

Trait Signer 

Source
pub trait Signer:
    Debug
    + Send
    + Sync {
    type Error: Error + Send + Sync;

    // Required methods
    fn sign_message<'life0, 'async_trait, S>(
        &'life0 self,
        message: S,
    ) -> Pin<Box<dyn Future<Output = Result<Signature, Self::Error>> + Send + 'async_trait>>
       where 'life0: 'async_trait,
             S: 'async_trait + Send + Sync + AsRef<[u8]>,
             Self: 'async_trait;
    fn sign_transaction<'life0, 'life1, 'async_trait>(
        &'life0 self,
        message: &'life1 TypedTransaction,
    ) -> Pin<Box<dyn Future<Output = Result<Signature, Self::Error>> + Send + 'async_trait>>
       where 'life0: 'async_trait,
             'life1: 'async_trait,
             Self: 'async_trait;
    fn sign_typed_data<'life0, 'life1, 'async_trait, T>(
        &'life0 self,
        payload: &'life1 T,
    ) -> Pin<Box<dyn Future<Output = Result<Signature, Self::Error>> + Send + 'async_trait>>
       where 'life0: 'async_trait,
             'life1: 'async_trait,
             T: 'async_trait + Eip712 + Send + Sync,
             Self: 'async_trait;
    fn address(&self) -> H160;
    fn chain_id(&self) -> u64;
    fn with_chain_id<T>(self, chain_id: T) -> Self
       where T: Into<u64>;
}
Expand description

Trait for signing transactions and messages

Implement this trait to support different signing modes, e.g. Ledger, hosted etc.

Required Associated Types§

Required Methods§

Source

fn sign_message<'life0, 'async_trait, S>( &'life0 self, message: S, ) -> Pin<Box<dyn Future<Output = Result<Signature, Self::Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, S: 'async_trait + Send + Sync + AsRef<[u8]>, Self: 'async_trait,

Signs the hash of the provided message after prefixing it

Source

fn sign_transaction<'life0, 'life1, 'async_trait>( &'life0 self, message: &'life1 TypedTransaction, ) -> Pin<Box<dyn Future<Output = Result<Signature, Self::Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

Signs the transaction

Source

fn sign_typed_data<'life0, 'life1, 'async_trait, T>( &'life0 self, payload: &'life1 T, ) -> Pin<Box<dyn Future<Output = Result<Signature, Self::Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, T: 'async_trait + Eip712 + Send + Sync, Self: 'async_trait,

Encodes and signs the typed data according EIP-712. Payload must implement Eip712 trait.

Source

fn address(&self) -> H160

Returns the signer’s Ethereum Address

Source

fn chain_id(&self) -> u64

Returns the signer’s chain id

Source

fn with_chain_id<T>(self, chain_id: T) -> Self
where T: Into<u64>,

Sets the signer’s chain id

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.

Implementors§