Expand description
§alloy-signer
Ethereum signer abstraction.
You can implement the Signer
trait to extend functionality to other signers
such as Hardware Security Modules, KMS etc. See its documentation for more.
Signer implementations in Alloy:
§Examples
Sign an Ethereum prefixed message (EIP-712):
use alloy_signer::{Signer, SignerSync};
use alloy_signer_local::PrivateKeySigner;
// Instantiate a signer.
let signer = PrivateKeySigner::random();
// Sign a message.
let message = "Some data";
let signature = signer.sign_message_sync(message.as_bytes())?;
// Recover the signer from the message.
let recovered = signature.recover_address_from_msg(message)?;
assert_eq!(recovered, signer.address());
Sign a transaction:
use alloy_consensus::TxLegacy;
use alloy_primitives::{U256, address, bytes};
use alloy_signer::{Signer, SignerSync};
use alloy_signer_local::PrivateKeySigner;
use alloy_network::{TxSignerSync};
// Instantiate a signer.
let signer = "dcf2cbdd171a21c480aa7f53d77f31bb102282b3ff099c78e3118b37348c72f7"
.parse::<PrivateKeySigner>()?;
// Create a transaction.
let mut tx = TxLegacy {
to: address!("d8dA6BF26964aF9D7eEd9e03E53415D37aA96045").into(),
value: U256::from(1_000_000_000),
gas_limit: 2_000_000,
nonce: 0,
gas_price: 21_000_000_000,
input: bytes!(),
chain_id: Some(1),
};
// Sign it.
let signature = signer.sign_transaction_sync(&mut tx)?;
Re-exports§
pub use k256;
Modules§
- Utility functions for working with Ethereum signatures.
Macros§
- Utility to get and set the chain ID on a transaction and the resulting signature within a signer’s
sign_transaction
.
Structs§
- An Ethereum ECDSA signature.
Enums§
- Generic error type for
Signer
implementations. - An unsupported signer operation.
Traits§
- Asynchronous Ethereum signer.
- Synchronous Ethereum signer.
Type Aliases§
- Result type alias for
Error
.