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 S: 'async_trait + Send + Sync + AsRef<[u8]>,
Self: 'async_trait,
'life0: '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 Self: 'async_trait,
'life0: 'async_trait,
'life1: '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 T: 'async_trait + Eip712 + Send + Sync,
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn address(&self) -> Address;
fn chain_id(&self) -> u64;
fn with_chain_id<T: Into<u64>>(self, chain_id: T) -> Self;
}
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§
Sourcefn sign_message<'life0, 'async_trait, S>(
&'life0 self,
message: S,
) -> Pin<Box<dyn Future<Output = Result<Signature, Self::Error>> + Send + 'async_trait>>
fn sign_message<'life0, 'async_trait, S>( &'life0 self, message: S, ) -> Pin<Box<dyn Future<Output = Result<Signature, Self::Error>> + Send + 'async_trait>>
Signs the hash of the provided message after prefixing it
Sourcefn sign_transaction<'life0, 'life1, 'async_trait>(
&'life0 self,
message: &'life1 TypedTransaction,
) -> Pin<Box<dyn Future<Output = Result<Signature, Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: '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
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Signs the transaction
Sourcefn 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>>
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>>
Encodes and signs the typed data according EIP-712. Payload must implement Eip712 trait.
Sourcefn with_chain_id<T: Into<u64>>(self, chain_id: T) -> Self
fn with_chain_id<T: Into<u64>>(self, chain_id: T) -> Self
Sets the signer’s chain id
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.
Implementors§
Source§impl Signer for AwsSigner
Available on crate feature aws
only.
impl Signer for AwsSigner
Available on crate feature
aws
only.type Error = AwsSignerError
Source§impl Signer for LedgerEthereum
Available on crate feature ledger
and non-WebAssembly only.
impl Signer for LedgerEthereum
Available on crate feature
ledger
and non-WebAssembly only.type Error = LedgerError
Source§impl Signer for TrezorEthereum
Available on crate feature trezor
and non-WebAssembly only.
impl Signer for TrezorEthereum
Available on crate feature
trezor
and non-WebAssembly only.