[package]
authors = ["Dragan Rakita <dragan0rakita@gmail.com>"]
description = "revm - Rust Ethereum Virtual Machine"
edition = "2021"
keywords = ["no_std", "ethereum", "evm", "revm"]
license = "MIT"
name = "revm"
repository = "https://github.com/bluealloy/revm"
version = "18.0.0"
readme = "../../README.md"
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
[lints.rust]
unreachable_pub = "warn"
unused_must_use = "deny"
rust_2018_idioms = "deny"
[lints.rustdoc]
all = "warn"
[dependencies]
revm-interpreter = { path = "../interpreter", version = "14.0.0", default-features = false }
revm-precompile = { path = "../precompile", version = "15.0.0", default-features = false }
auto_impl = { version = "1.2", default-features = false }
cfg-if = "1.0"
dyn-clone = "1.0"
serde = { version = "1.0", default-features = false, features = [
"derive",
"rc",
], optional = true }
serde_json = { version = "1.0", default-features = false, features = [
"alloc",
], optional = true }
tokio = { version = "1.40", features = [
"rt-multi-thread",
"macros",
], optional = true }
ethers-providers = { version = "2.0", optional = true }
ethers-core = { version = "2.0", optional = true }
alloy-provider = { version = "0.5.4", optional = true, default-features = false }
alloy-eips = { version = "0.5.4", optional = true, default-features = false }
alloy-transport = { version = "0.5.4", optional = true, default-features = false }
[dev-dependencies]
alloy-sol-types = { version = "0.8.2", default-features = false, features = [
"std",
] }
ethers-contract = { version = "2.0.14", default-features = false }
anyhow = "1.0.87"
criterion = "0.5"
indicatif = "0.17"
reqwest = { version = "0.12" }
rstest = "0.22.0"
alloy-provider = "0.5.3"
[features]
default = ["std", "c-kzg", "secp256k1", "portable", "blst"]
std = [
"serde?/std",
"serde_json?/std",
"serde_json?/preserve_order",
"revm-interpreter/std",
"revm-precompile/std",
]
hashbrown = ["revm-interpreter/hashbrown", "revm-precompile/hashbrown"]
serde = ["dep:serde", "revm-interpreter/serde"]
serde-json = ["serde", "dep:serde_json"]
arbitrary = ["revm-interpreter/arbitrary"]
asm-keccak = ["revm-interpreter/asm-keccak", "revm-precompile/asm-keccak"]
portable = ["revm-precompile/portable", "revm-interpreter/portable"]
test-utils = []
optimism = ["revm-interpreter/optimism", "revm-precompile/optimism"]
optimism-default-handler = [
"optimism",
"revm-precompile/optimism-default-handler",
"revm-interpreter/optimism-default-handler",
]
negate-optimism-default-handler = [
"revm-precompile/negate-optimism-default-handler",
"revm-interpreter/negate-optimism-default-handler",
]
ethersdb = ["std", "dep:tokio", "dep:ethers-providers", "dep:ethers-core"]
alloydb = [
"std",
"dep:tokio",
"dep:alloy-provider",
"dep:alloy-eips",
"dep:alloy-transport",
]
dev = [
"memory_limit",
"optional_balance_check",
"optional_block_gas_limit",
"optional_eip3607",
"optional_gas_refund",
"optional_no_base_fee",
"optional_beneficiary_reward",
]
memory_limit = ["revm-interpreter/memory_limit"]
optional_balance_check = ["revm-interpreter/optional_balance_check"]
optional_block_gas_limit = ["revm-interpreter/optional_block_gas_limit"]
optional_eip3607 = ["revm-interpreter/optional_eip3607"]
optional_gas_refund = ["revm-interpreter/optional_gas_refund"]
optional_no_base_fee = ["revm-interpreter/optional_no_base_fee"]
optional_beneficiary_reward = ["revm-interpreter/optional_beneficiary_reward"]
secp256k1 = ["revm-precompile/secp256k1"]
c-kzg = ["revm-precompile/c-kzg"]
kzg-rs = ["revm-precompile/kzg-rs"]
blst = ["revm-precompile/blst"]
[[example]]
name = "fork_ref_transact"
path = "../../examples/fork_ref_transact.rs"
required-features = ["ethersdb"]
[[example]]
name = "generate_block_traces"
path = "../../examples/generate_block_traces.rs"
required-features = ["std", "serde-json", "ethersdb"]
[[example]]
name = "db_by_ref"
path = "../../examples/db_by_ref.rs"
required-features = ["std", "serde-json"]
[[bench]]
name = "bench"
path = "benches/bench.rs"
harness = false