[package]
name = "reth-ethereum-forks"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
homepage.workspace = true
repository.workspace = true
description = "Ethereum fork types used in reth."

[lints]
workspace = true

[dependencies]
# ethereum
alloy-chains.workspace = true
alloy-eip2124.workspace = true
alloy-primitives = { workspace = true, features = ["serde", "rlp"] }

# misc
serde = { workspace = true, features = ["derive"], optional = true }
dyn-clone.workspace = true
once_cell.workspace = true
rustc-hash = { workspace = true, optional = true }

# arbitrary utils
arbitrary = { workspace = true, features = ["derive"], optional = true }
auto_impl.workspace = true

[dev-dependencies]
arbitrary = { workspace = true, features = ["derive"] }

[features]
default = ["std", "serde", "rustc-hash"]
arbitrary = [
    "dep:arbitrary",
    "alloy-chains/arbitrary",
    "alloy-primitives/arbitrary",
    "alloy-eip2124/arbitrary",
]
serde = [
    "dep:serde",
    "alloy-chains/serde",
    "alloy-primitives/serde",
    "alloy-eip2124/serde",
]
std = [
    "alloy-chains/std",
    "alloy-primitives/std",
    "rustc-hash/std",
    "serde?/std",
    "alloy-eip2124/std",
    "once_cell/std",
]
rustc-hash = ["dep:rustc-hash"]
