[package]
name = "reth-trie-common"
version.workspace = true
edition.workspace = true
homepage.workspace = true
license.workspace = true
repository.workspace = true
rust-version.workspace = true
description = "Commonly used types for trie usage in reth."

[lints]
workspace = true

[dependencies]
reth-primitives-traits.workspace = true
reth-codecs.workspace = true

alloy-primitives.workspace = true
alloy-rlp = { workspace = true, features = ["arrayvec"] }
alloy-trie = { workspace = true, features = ["serde"] }
alloy-consensus.workspace = true
alloy-genesis.workspace = true
revm-primitives.workspace = true

bytes.workspace = true
derive_more.workspace = true
serde.workspace = true
itertools.workspace = true
nybbles = { workspace = true, features = ["serde", "rlp"] }

# `test-utils` feature
hash-db = { version = "=0.15.2", optional = true }
plain_hasher = { version = "0.2", optional = true }
arbitrary = { workspace = true, features = ["derive"], optional = true }

[dev-dependencies]
arbitrary = { workspace = true, features = ["derive"] }
proptest.workspace = true
proptest-arbitrary-interop.workspace = true
test-fuzz.workspace = true
toml.workspace = true
hash-db = "=0.15.2"
plain_hasher = "0.2"

[features]
test-utils = ["dep:plain_hasher", "dep:hash-db", "arbitrary"]
arbitrary = [
    "alloy-trie/arbitrary",
    "dep:arbitrary",
]
