Trait Signer
pub trait Signer<Sig = Signature> {
// Required methods
fn sign_hash<'life0, 'life1, 'async_trait>(
&'life0 self,
hash: &'life1 FixedBytes<32>,
) -> Pin<Box<dyn Future<Output = Result<Sig, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait;
fn address(&self) -> Address;
fn chain_id(&self) -> Option<u64>;
fn set_chain_id(&mut self, chain_id: Option<u64>);
// Provided methods
fn sign_message<'life0, 'life1, 'async_trait>(
&'life0 self,
message: &'life1 [u8],
) -> Pin<Box<dyn Future<Output = Result<Sig, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait,
'life1: 'async_trait,
Self: Sync + 'async_trait { ... }
fn with_chain_id(self, chain_id: Option<u64>) -> Self
where Self: Sized { ... }
}Expand description
Asynchronous Ethereum signer.
All provided implementations rely on sign_hash. A signer may not always
be able to implement this method, in which case it should return
UnsupportedOperation, and implement all the signing
methods directly.
Synchronous signers should implement both this trait and [SignerSync].
Required Methods§
fn sign_hash<'life0, 'life1, 'async_trait>(
&'life0 self,
hash: &'life1 FixedBytes<32>,
) -> Pin<Box<dyn Future<Output = Result<Sig, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn sign_hash<'life0, 'life1, 'async_trait>(
&'life0 self,
hash: &'life1 FixedBytes<32>,
) -> Pin<Box<dyn Future<Output = Result<Sig, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
Signs the given hash.
fn address(&self) -> Address
fn address(&self) -> Address
Returns the signer’s Ethereum Address.
fn set_chain_id(&mut self, chain_id: Option<u64>)
fn set_chain_id(&mut self, chain_id: Option<u64>)
Sets the signer’s chain ID.
Provided Methods§
fn sign_message<'life0, 'life1, 'async_trait>(
&'life0 self,
message: &'life1 [u8],
) -> Pin<Box<dyn Future<Output = Result<Sig, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: Sync + 'async_trait,
fn sign_message<'life0, 'life1, 'async_trait>(
&'life0 self,
message: &'life1 [u8],
) -> Pin<Box<dyn Future<Output = Result<Sig, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: Sync + 'async_trait,
Signs the hash of the provided message after prefixing it, as specified in EIP-191.
fn with_chain_id(self, chain_id: Option<u64>) -> Selfwhere
Self: Sized,
fn with_chain_id(self, chain_id: Option<u64>) -> Selfwhere
Self: Sized,
Sets the signer’s chain ID and returns self.