Settings
Help

Crate primitives

Crate primitives 

Expand description

§revm-primitives

Core primitive types and constants for the Ethereum Virtual Machine (EVM) implementation.

This crate provides:

  • EVM constants and limits (gas, stack, code size)
  • Ethereum hard fork management and version control
  • EIP-specific constants and configuration values
  • Cross-platform synchronization primitives
  • Type aliases for common EVM concepts (storage keys/values)
  • Re-exports of alloy primitive types for convenience

Modules§

alloy_primitives
alloy-primitives
constants
Global constants for the EVM
eip170
EIP-170: Contract Code Size Limit
eip3860
EIP-3860: Limit and Meter Initcode
eip4844
EIP-4844: Shard Blob Transactions
eip7702
EIP-7702: Set EOA Account Code
eip7823
EIP-7823: Set Upper Bounds for MODEXP
eip7825
EIP-7825: Transaction Gas Limit Cap
eip7907
EIP-7907: Meter Contract Code Size And Increase Limit (Prague)
eip7918
EIP-7918: Blob Base Fee Bounded by Execution Cost
hardfork
map
Re-exports of map types and utilities.

Macros§

address
Converts a sequence of string literals containing hex-encoded data into a new Address at compile time.
b256
Converts a sequence of string literals containing hex-encoded data into a new B256 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.

Structs§

Address
An Ethereum address, 20 bytes in length.
Bytes
Wrapper type around [bytes::Bytes] to support “0x” prefixed hex strings.
FixedBytes
A byte array of fixed length ([u8; N]).
Log
A log consists of an address, and some log data.
LogData
An Ethereum event log object.
OnceLock
A synchronization primitive which can nominally be written to only once.

Enums§

TxKind
The to field of a transaction. Either a target address, or empty for a contract creation.

Constants§

BLOCK_HASH_HISTORY
Number of block hashes that EVM can access in the past (pre-Prague)
CALL_STACK_LIMIT
EVM call stack limit
KECCAK_EMPTY
The Keccak-256 hash of the empty string "".
PRECOMPILE3
The address of precompile 3, which is handled specially in a few places
SHORT_ADDRESS_CAP
Optimize short address access.
STACK_LIMIT
EVM interpreter stack limit

Functions§

keccak256
Simple interface to the Keccak-256 hash function.
short_address
Returns the short address from Address.

Type Aliases§

B256
32-byte fixed byte-array type.
HashMap
A HashMap using the default hasher.
HashSet
A HashSet using the default hasher.
I128
128-bit signed integer type, consisting of 2, 64-bit limbs.
I256
256-bit signed integer type, consisting of 4, 64-bit limbs.
StorageKey
Type alias for EVM storage keys (256-bit unsigned integers). Used to identify storage slots within smart contract storage.
StorageValue
Type alias for EVM storage values (256-bit unsigned integers). Used to store data values in smart contract storage slots.
U128
128-bit unsigned integer type, consisting of 2, 64-bit limbs.
U256
256-bit unsigned integer type, consisting of 4, 64-bit limbs.