Skip to main content

EthSigner

Trait EthSigner 

Source
pub trait EthSigner<T, TxReq = TransactionRequest>:
    Send
    + Sync
    + DynClone {
    // Required methods
    fn accounts(&self) -> Vec<Address>;
    fn sign<'life0, 'life1, 'async_trait>(
        &'life0 self,
        address: Address,
        message: &'life1 [u8],
    ) -> Pin<Box<dyn Future<Output = Result<Signature>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
    fn sign_transaction<'life0, 'life1, 'async_trait>(
        &'life0 self,
        request: TxReq,
        address: &'life1 Address,
    ) -> Pin<Box<dyn Future<Output = Result<T>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
    fn sign_typed_data(
        &self,
        address: Address,
        payload: &TypedData,
    ) -> Result<Signature>;

    // Provided methods
    fn is_signer_for(&self, addr: &Address) -> bool { ... }
    fn nonce_lock(&self) -> Option<Arc<Mutex<()>>> { ... }
}
Expand description

An Ethereum Signer used via RPC.

Required Methods§

Source

fn accounts(&self) -> Vec<Address>

Returns the available accounts for this signer.

Source

fn sign<'life0, 'life1, 'async_trait>( &'life0 self, address: Address, message: &'life1 [u8], ) -> Pin<Box<dyn Future<Output = Result<Signature>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Returns the signature

Source

fn sign_transaction<'life0, 'life1, 'async_trait>( &'life0 self, request: TxReq, address: &'life1 Address, ) -> Pin<Box<dyn Future<Output = Result<T>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

signs a transaction request using the given account in request

Source

fn sign_typed_data( &self, address: Address, payload: &TypedData, ) -> Result<Signature>

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

Provided Methods§

Source

fn is_signer_for(&self, addr: &Address) -> bool

Returns true whether this signer can sign for this address

Source

fn nonce_lock(&self) -> Option<Arc<Mutex<()>>>

Returns the lock eth_sendTransaction holds for this signer’s accounts from filling the nonce until the signed transaction is in the pool, so concurrent requests from one account get distinct nonces.

None leaves those requests unserialized.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§