[package]
name = "evm2-cli"
description = "Command-line tools for capturing and replaying evm2 fixtures"

version.workspace = true
edition.workspace = true
rust-version.workspace = true
authors.workspace = true
license.workspace = true
homepage.workspace = true
repository.workspace = true

[[bin]]
name = "evm2"
path = "src/main.rs"
# Avoid a rustdoc output-filename collision with the `evm2` library crate.
doc = false

[lints]
workspace = true

[dependencies]
evm2-eest = { path = "../eest", version = "0.1.0" }
evm2 = { workspace = true, default-features = true }

alloy-consensus = { workspace = true, features = ["k256", "secp256k1", "std"] }
alloy-chains.workspace = true
alloy-eips = { workspace = true, features = ["serde", "std"] }
alloy-hardforks.workspace = true
alloy-primitives = { workspace = true, features = ["keccak-cache-global", "secp256k1", "serde", "std"] }
alloy-provider = { workspace = true, features = ["debug-api", "reqwest", "reqwest-rustls-tls"] }
alloy-rpc-client = { workspace = true, features = ["reqwest"] }
alloy-rpc-types-eth = { workspace = true, features = ["serde", "std"] }
alloy-rpc-types-trace.workspace = true
anstyle.workspace = true
clap.workspace = true
futures-util.workspace = true
rand.workspace = true
revm.workspace = true
secp256k1 = { workspace = true, features = ["global-context", "recovery"] }
serde = { workspace = true, features = ["derive", "std"] }
serde_json = { workspace = true, features = ["raw_value", "std"] }
thiserror = { workspace = true, features = ["std"] }
tokio = { workspace = true, features = ["rt-multi-thread", "sync", "time"] }
zstd.workspace = true

# jit
evm2-jit-context = { workspace = true, optional = true }
evm2-jit-llvm = { workspace = true, optional = true }
evm2-jit-runtime = { workspace = true, features = ["llvm"], optional = true }
libloading = { version = "0.9", optional = true }
open = { version = "5", optional = true }

[build-dependencies]
evm2-jit-build = { workspace = true, optional = true }

[features]
default = []
jit = [
    "evm2-eest/jit",
    "dep:evm2-jit-context",
    "dep:evm2-jit-llvm",
    "dep:evm2-jit-runtime",
    "dep:evm2-jit-build",
    "dep:libloading",
    "dep:open",
]

[dev-dependencies]
criterion.workspace = true
revm = { workspace = true, features = ["test-types"] }

[[bench]]
name = "evm"
harness = false
