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§
Sourcefn 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<'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
Sourcefn 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_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
Sourcefn sign_typed_data(
&self,
address: Address,
payload: &TypedData,
) -> Result<Signature>
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§
Sourcefn is_signer_for(&self, addr: &Address) -> bool
fn is_signer_for(&self, addr: &Address) -> bool
Returns true whether this signer can sign for this address
Sourcefn nonce_lock(&self) -> Option<Arc<Mutex<()>>>
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".