[package]
name = "alloy-consensus"
description = "Ethereum consensus interface"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
authors.workspace = true
license.workspace = true
homepage.workspace = true
repository.workspace = true
exclude.workspace = true
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
[lints]
workspace = true
[dependencies]
alloy-eips = { workspace = true, features = ["kzg-sidecar"] }
alloy-primitives = { workspace = true, features = ["rlp"] }
alloy-rlp.workspace = true
alloy-serde = { workspace = true, optional = true }
k256 = { workspace = true, features = ["ecdsa"], optional = true }
c-kzg = { workspace = true, features = ["serde"], optional = true }
arbitrary = { workspace = true, features = ["derive"], optional = true }
rand = { workspace = true, optional = true }
serde = { workspace = true, features = ["derive"], optional = true }
serde_with = { workspace = true, optional = true }
derive_more = { workspace = true, features = [
"from",
"deref",
"deref_mut",
"into_iterator"
], default-features = false }
auto_impl.workspace = true
[dev-dependencies]
alloy-eips = { workspace = true, features = ["arbitrary"] }
alloy-primitives = { workspace = true, features = ["arbitrary", "rand"] }
alloy-signer.workspace = true
arbitrary = { workspace = true, features = ["derive"] }
bincode = "1.3"
k256.workspace = true
rand.workspace = true
serde_json.workspace = true
tokio = { workspace = true, features = ["macros"] }
[features]
default = ["std"]
std = ["alloy-eips/std", "c-kzg?/std"]
k256 = ["dep:k256", "alloy-primitives/k256", "alloy-eips/k256"]
kzg = ["dep:c-kzg", "alloy-eips/kzg", "std"]
arbitrary = ["std", "dep:rand", "dep:arbitrary", "alloy-eips/arbitrary"]
serde = [
"dep:serde",
"alloy-primitives/serde",
"dep:alloy-serde",
"alloy-eips/serde",
]
serde-bincode-compat = ["alloy-eips/serde-bincode-compat", "serde_with"]