[package]
name = "reth-primitives-traits"
version.workspace = true
edition.workspace = true
homepage.workspace = true
license.workspace = true
repository.workspace = true
rust-version.workspace = true
description = "Common types in reth."

[lints]
workspace = true

[dependencies]
reth-codecs.workspace = true

alloy-consensus = { workspace = true, features = ["serde"] }
alloy-eips.workspace = true
alloy-genesis.workspace = true
alloy-primitives.workspace = true
alloy-rlp.workspace = true
alloy-rpc-types-eth = { workspace = true, optional = true }

derive_more.workspace = true
revm-primitives = { workspace = true, features = ["serde"] }

# misc
roaring = "0.10.2"
byteorder = "1"

# required by reth-codecs
modular-bitfield.workspace = true
bytes.workspace = true
serde.workspace = true

# arbitrary utils
arbitrary = { workspace = true, features = ["derive"], optional = true }
proptest = { workspace = true, optional = true }
proptest-arbitrary-interop = { workspace = true, optional = true }

[dev-dependencies]
alloy-primitives = { workspace = true, features = ["arbitrary"] }
alloy-consensus = { workspace = true, features = ["arbitrary"] }
arbitrary = { workspace = true, features = ["derive"] }
proptest.workspace = true
proptest-arbitrary-interop.workspace = true
test-fuzz.workspace = true
rand.workspace = true
serde_json.workspace = true

[features]
default = ["std"]
std = []
test-utils = ["arbitrary"]
arbitrary = [
    "std",
    "alloy-consensus/arbitrary",
    "alloy-primitives/arbitrary",
    "dep:arbitrary",
    "dep:proptest",
    "dep:proptest-arbitrary-interop",
]
alloy-compat = ["alloy-rpc-types-eth"]
