reth::rpc::api::servers::eth::helpers

Trait EthSigner

Source
pub trait EthSigner<T>:
    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<PrimitiveSignature, SignError>> + Send + 'async_trait>>
       where 'life0: 'async_trait,
             'life1: 'async_trait,
             Self: 'async_trait;
    fn sign_transaction<'life0, 'life1, 'async_trait>(
        &'life0 self,
        request: TransactionRequest,
        address: &'life1 Address,
    ) -> Pin<Box<dyn Future<Output = Result<T, SignError>> + Send + 'async_trait>>
       where 'life0: 'async_trait,
             'life1: 'async_trait,
             Self: 'async_trait;
    fn sign_typed_data(
        &self,
        address: Address,
        payload: &TypedData,
    ) -> Result<PrimitiveSignature, SignError>;

    // Provided method
    fn is_signer_for(&self, addr: &Address) -> bool { ... }
}
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<PrimitiveSignature, SignError>> + Send + 'async_trait>>
where 'life0: 'async_trait, 'life1: 'async_trait, Self: 'async_trait,

Returns the signature

Source

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

signs a transaction request using the given account in request

Source

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

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

Trait Implementations§

Source§

impl<'clone, T> Clone for Box<dyn EthSigner<T> + 'clone>

Source§

fn clone(&self) -> Box<dyn EthSigner<T> + 'clone>

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<'clone, T> Clone for Box<dyn EthSigner<T> + Send + 'clone>

Source§

fn clone(&self) -> Box<dyn EthSigner<T> + Send + 'clone>

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<'clone, T> Clone for Box<dyn EthSigner<T> + Send + Sync + 'clone>

Source§

fn clone(&self) -> Box<dyn EthSigner<T> + Send + Sync + 'clone>

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<'clone, T> Clone for Box<dyn EthSigner<T> + Sync + 'clone>

Source§

fn clone(&self) -> Box<dyn EthSigner<T> + Sync + 'clone>

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more

Implementors§

Source§

impl<T> EthSigner<T> for DevSigner
where T: Decodable2718,