1 个稳定版本
1.0.2 | 2023年2月27日 |
---|
#12 在 #celo
1MB
18K SLoC
Ethereum类型、加密和实用工具。
建议使用 utils
、types
和 abi
的重导出,而不是 core
模块,以简化你的导入。
该库为Ethereum的主要数据类型提供了类型定义,同时还提供了与其他Ethereum生态系统交互的实用工具。
对以"ethereum"前缀的消息进行签名
Ethereum中的签名是通过首先使用以下命令对消息进行前缀处理:"\x19Ethereum Signed Message:\n" + message.length
,然后对结果哈希进行签名。
# async fn foo() -> Result<(), Box<dyn std::error::Error>> {
use ethers::signers::{Signer, LocalWallet};
let message = "Some data";
let wallet = LocalWallet::new(&mut rand::thread_rng());
// Sign the message
let signature = wallet.sign_message(message).await?;
// Recover the signer from the message
let recovered = signature.recover(message)?;
assert_eq!(recovered, wallet.address());
# Ok(())
# }
实用工具
该crate提供了通过使用 ganache-cli
和 GanacheBuilder 结构体来启动本地Ethereum测试网的实用工具。
特性
- ["eip712"] | 提供了用于对派生结构体中的类型数据进行EIP-712编码的Eip712特质
ABI编码和解码
该crate在 abi
模块下重导出 ethabi
crate的函数,以及为了方便而重导出 secp256k1
和 rand
crate。
依赖关系
~10–22MB
~313K SLoC