[package]
name = "reth-execution-types"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
homepage.workspace = true
repository.workspace = true

[lints]
workspace = true

[dependencies]
reth-primitives.workspace = true
reth-primitives-traits.workspace = true
reth-execution-errors.workspace = true
reth-trie-common = { workspace = true, optional = true }
reth-trie.workspace = true

revm.workspace = true

# alloy
alloy-consensus.workspace = true
alloy-primitives.workspace = true
alloy-eips.workspace = true

serde = { workspace = true, optional = true }
serde_with = { workspace = true, optional = true }

[dev-dependencies]
arbitrary.workspace = true
bincode.workspace = true
rand.workspace = true
reth-primitives = { workspace = true, features = ["arbitrary", "test-utils"] }
reth-ethereum-primitives.workspace = true

[features]
default = ["std"]
optimism = ["revm/optimism"]
serde = [
    "dep:serde",
    "rand/serde",
    "revm/serde",
    "alloy-eips/serde",
    "alloy-primitives/serde",
    "reth-primitives-traits/serde",
    "alloy-consensus/serde",
    "reth-trie/serde",
    "reth-trie-common?/serde",
]
serde-bincode-compat = [
    "serde",
    "reth-trie-common/serde-bincode-compat",
    "reth-primitives/serde-bincode-compat",
    "reth-primitives-traits/serde-bincode-compat",
    "serde_with",
    "alloy-eips/serde-bincode-compat",
    "alloy-consensus/serde-bincode-compat",
    "reth-ethereum-primitives/serde-bincode-compat",
]
std = [
    "reth-primitives/std",
    "alloy-eips/std",
    "alloy-primitives/std",
    "revm/std",
    "serde?/std",
    "reth-primitives-traits/std",
    "alloy-consensus/std",
    "serde_with?/std",
    "reth-trie-common?/std",
    "reth-ethereum-primitives/std",
]
