Trait zksync_web3_rs::signers::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

Object Safety§

This trait is not object safe.

Implementors§