Crate alloy_primitives

Crate alloy_primitives 

Source
Expand description

§alloy-primitives

Primitive types shared by alloy, foundry, revm, and reth.

§Types

  • Unsigned integers re-exported from ruint
  • Signed integers, as a wrapper around ruint integers
  • Fixed-size byte arrays via FixedBytes
    • wrap_fixed_bytes!: macro for constructing named fixed bytes types
    • Address, which is a fixed-size byte array of 20 bytes, with EIP-55 and EIP-1191 checksum support
    • fixed_bytes!, address! and other macros to construct the types at compile time

§Examples

This library has straightforward, basic, types. Usage is correspondingly simple. Please consult the documentation for more information.

use alloy_primitives::{address, fixed_bytes, Address, FixedBytes, I256, U256};

// FixedBytes
let n: FixedBytes<6> = fixed_bytes!("0x1234567890ab");
assert_eq!(n, "0x1234567890ab".parse::<FixedBytes<6>>().unwrap());
assert_eq!(n.to_string(), "0x1234567890ab");

// Uint
let mut n: U256 = "42".parse().unwrap();
n += U256::from(10);
assert_eq!(n.to_string(), "52");

// Signed
let mut n: I256 = "-42".parse().unwrap();
n = -n;
assert_eq!(n.to_string(), "42");

// Address
let addr_str = "0x66f9664f97F2b50F62D13eA064982f936dE76657";
let addr: Address = Address::parse_checksummed(addr_str, None).unwrap();
assert_eq!(addr, address!("0x66f9664f97F2b50F62D13eA064982f936dE76657"));
assert_eq!(addr.to_checksum(None), addr_str);

// Address checksummed with a custom chain id
let addr_str = "0x66F9664f97f2B50F62d13EA064982F936de76657";
let addr: Address = Address::parse_checksummed(addr_str, Some(30)).unwrap();
assert_eq!(addr, address!("0x66F9664f97f2B50F62d13EA064982F936de76657"));
assert_eq!(addr.to_checksum(Some(30)), addr_str);

Re-exports§

pub use aliases::B64;
pub use aliases::B128;
pub use aliases::B256;
pub use aliases::B512;
pub use aliases::BlockHash;
pub use aliases::BlockNumber;
pub use aliases::BlockTimestamp;
pub use aliases::ChainId;
pub use aliases::I8;
pub use aliases::I16;
pub use aliases::I32;
pub use aliases::I64;
pub use aliases::I128;
pub use aliases::I160;
pub use aliases::I256;
pub use aliases::Selector;
pub use aliases::StorageKey;
pub use aliases::StorageValue;
pub use aliases::TxHash;
pub use aliases::TxIndex;
pub use aliases::TxNonce;
pub use aliases::TxNumber;
pub use aliases::U8;
pub use aliases::U16;
pub use aliases::U32;
pub use aliases::U64;
pub use aliases::U128;
pub use aliases::U160;
pub use aliases::U256;
pub use aliases::U512;
pub use utils::KECCAK256_EMPTY;
pub use utils::Keccak256;
pub use utils::eip191_hash_message;
pub use utils::keccak256;
pub use ::bytes;
pub use ::hex;
pub use ruint;
pub use ruint::Uint;
pub use ::hex::serde as serde_hex;serde

Modules§

aliases
Type aliases for common primitive types.
dieseldiesel
Support for the diesel crate.
mapmap
Re-exports of map types and utilities.
postgrespostgres
Support for the postgres_types crate.
sqlxsqlx
Support for the sqlx crate.
utils
Common Ethereum utilities.

Macros§

address
Converts a sequence of string literals containing hex-encoded data into a new Address at compile time.
b64
Converts a sequence of string literals containing hex-encoded data into a new B64 at compile time.
b128
Converts a sequence of string literals containing hex-encoded data into a new B128 at compile time.
b256
Converts a sequence of string literals containing hex-encoded data into a new B256 at compile time.
b512
Converts a sequence of string literals containing hex-encoded data into a new B512 at compile time.
bloom
Converts a sequence of string literals containing hex-encoded data into a new Bloom at compile time.
bytes
Converts a sequence of string literals containing hex-encoded data into a new Bytes at compile time.
fixed_bytes
Converts a sequence of string literals containing hex-encoded data into a new FixedBytes at compile time.
hex
Macro for converting sequence of string literals containing hex-encoded data into an array of bytes.
try_vec
Tries to create a Vec containing the arguments.
uint
Wrapper for ruint_macro::uint!. See its documentation for details.
wrap_fixed_bytes
Wrap a fixed-size byte array in a newtype, delegating all methods to the underlying crate::FixedBytes.

Structs§

Address
An Ethereum address, 20 bytes in length.
AddressChecksumBuffer
Stack-allocated buffer for efficiently computing address checksums.
AddressResolverrkyv
The resolver for an archived Address
ArchivedAddressrkyv
An archived Address
ArchivedBloomrkyv
An archived Bloom
ArchivedFixedBytesrkyv
An archived FixedBytes
BigIntConversionError
The error type that is returned when conversion to or from a integer fails.
Bloom
Ethereum 256 byte bloom filter.
BloomResolverrkyv
The resolver for an archived Bloom
Bytes
Wrapper type around bytes::Bytes to support “0x” prefixed hex strings.
FixedBytes
A byte array of fixed length ([u8; N]).
FixedBytesResolverrkyv
The resolver for an archived FixedBytes
Function
An Ethereum ABI function pointer, 24 bytes in length.
Log
A log consists of an address, and some log data.
LogData
An Ethereum event log object.
Sealed
A consensus hashable item, with its memoized hash.
Signature
An Ethereum ECDSA signature.
Signed
Signed integer wrapping a ruint::Uint.

Enums§

AddressError
Error type for address checksum validation.
BloomInput
Input to the Bloom::accrue method.
ParseSignedError
The error type that is returned when parsing a signed integer.
Sign
Enum to represent the sign of a 256-bit signed integer.
SignatureError
Errors in signature parsing or verification.
TxKind
The to field of a transaction. Either a target address, or empty for a contract creation.

Constants§

BLOOM_BITS_PER_ITEM
Number of bits to set per input in Ethereum bloom filter.
BLOOM_SIZE_BITS
Size of the bloom filter in bits
BLOOM_SIZE_BYTES
Size of the bloom filter in bytes.

Traits§

IntoLogData
Trait for an object that can be converted into a log data object.
Sealable
Sealeable objects.

Functions§

logs_bloom
Compute the logs bloom filter for the given logs.
normalize_v
Attempts to normalize the v value to a boolean parity value.
to_eip155_v
Applies EIP-155.

Type Aliases§

B160Deprecated
20-byte fixed byte-array type.
PrimitiveSignatureDeprecated
Deprecated alias for Signature.