Crate revm_primitives

Source
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

Re-exports§

pub use alloy_primitives;
pub use alloy_primitives::bytes;
pub use alloy_primitives::hex;
pub use alloy_primitives::ruint;
pub use constants::*;

Modules§

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
hash_map
A hash map implemented with quadratic probing and SIMD lookup.
hash_set
A hash set implemented as a HashMap where the value is ().
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.

Functions§

keccak256
Simple interface to the Keccak-256 hash function.

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][Signed], consisting of 2, 64-bit limbs.
I256
256-bit [signed integer type][Signed], 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][Uint], consisting of 2, 64-bit limbs.
U256
256-bit [unsigned integer type][Uint], consisting of 4, 64-bit limbs.