6 releases
0.2.2 | Oct 29, 2023 |
---|---|
0.2.1 | Oct 27, 2023 |
0.1.2 | Nov 20, 2022 |
0.1.1 | Aug 25, 2022 |
0.1.0 | May 30, 2022 |
#21 in #const-fn
312 downloads per month
Used in 4 crates
(2 directly)
35KB
748 lines
Implementation of Ethereum public addresses for Rust.
This crate provides an Address
type for representing Ethereum public
addresses. It implements ERC-55
mixed-case checksum Display
formatting and parsing with verification using
Address::from_str_checksum()
.
Additionally an address!
macro is included for compile-time verified address
constants. Under the hood, it is implemented with const fn
and does not use
procedural macros.
Usage
Just add a dependency to your Cargo.toml
:
[dependencies]
ethaddr = "*"
For complete documentation checkout docs.rs
.
lib.rs
:
Implementation of Ethereum public addresses for Rust.
This crate provides an Address
type for representing Ethereum public
addresses.
Checksums
Addresses are by default formatted with ERC-55 mixed-case checksum
encoding. Addresses checksums may optionally be verified when parsing with
[Address::from_str_checksum()
].
address!
Macro
This crate exports an address!
macro that can be used for creating
compile-time address constants. Under the hood, it is implemented with
const fn
and does not use procedural macros.
Features
- default
std
: Additional integration with Rust standard library types. Notably, this includesstd::error::Error
implementation on theParseAddressError
type and conversions fromVec<u8>
. serde
: Serialization traits for theserde
crate. Note that the implementation is very much geared towards JSON serialization withserde_json
.sha3
: Use the Rust Crypto Keccak-256 implementation (provided by thesha3
crate) instead of the built-in one. Note that theaddress!
macro will always use the built-in Keccak-256 implementation for checksum verification, assha3
does not expose aconst fn
API.
Dependencies
~0–435KB