[package] name = "reth-primitives" version.workspace = true edition.workspace = true homepage.workspace = true license.workspace = true repository.workspace = true rust-version.workspace = true description = "Commonly used types in reth." [lints] workspace = true [dependencies] # reth reth-primitives-traits.workspace = true reth-codecs.workspace = true reth-ethereum-forks.workspace = true reth-network-peers.workspace = true reth-static-file-types.workspace = true reth-trie-common.workspace = true revm.workspace = true revm-primitives = { workspace = true, features = ["serde"] } # ethereum alloy-chains = { workspace = true, features = ["serde", "rlp"] } alloy-consensus = { workspace = true, features = ["serde"] } alloy-primitives = { workspace = true, features = ["rand", "rlp"] } alloy-rlp = { workspace = true, features = ["arrayvec"] } alloy-rpc-types = { workspace = true, optional = true } alloy-genesis.workspace = true alloy-eips = { workspace = true, features = ["serde"] } # crypto secp256k1 = { workspace = true, features = [ "global-context", "recovery", "rand", ] } # for eip-4844 c-kzg = { workspace = true, features = ["serde"], optional = true } # misc bytes.workspace = true byteorder = "1" derive_more.workspace = true modular-bitfield.workspace = true once_cell.workspace = true rayon.workspace = true serde.workspace = true serde_json.workspace = true tempfile = { workspace = true, optional = true } thiserror.workspace = true zstd = { version = "0.13", features = ["experimental"], optional = true } roaring = "0.10.2" # arbitrary utils arbitrary = { workspace = true, features = ["derive"], optional = true } proptest = { workspace = true, optional = true } proptest-derive = { workspace = true, optional = true } [dev-dependencies] # eth revm-primitives = { workspace = true, features = ["arbitrary"] } nybbles = { workspace = true, features = ["arbitrary"] } alloy-trie = { workspace = true, features = ["arbitrary"] } alloy-eips = { workspace = true, features = ["arbitrary"] } assert_matches.workspace = true arbitrary = { workspace = true, features = ["derive"] } proptest.workspace = true proptest-derive.workspace = true rand.workspace = true serde_json.workspace = true test-fuzz.workspace = true toml.workspace = true triehash = "0.8" sucds = "0.8.1" criterion.workspace = true pprof = { workspace = true, features = [ "flamegraph", "frame-pointer", "criterion", ] } secp256k1.workspace = true [features] default = ["c-kzg", "zstd-codec", "alloy-compat"] asm-keccak = ["alloy-primitives/asm-keccak"] arbitrary = [ "reth-primitives-traits/arbitrary", "revm-primitives/arbitrary", "reth-ethereum-forks/arbitrary", "nybbles/arbitrary", "alloy-trie/arbitrary", "alloy-chains/arbitrary", "alloy-consensus/arbitrary", "alloy-eips/arbitrary", "dep:arbitrary", "dep:proptest", "dep:proptest-derive", "zstd-codec", ] c-kzg = [ "dep:c-kzg", "revm/c-kzg", "revm-primitives/c-kzg", "dep:tempfile", "alloy-eips/kzg", ] zstd-codec = ["dep:zstd"] optimism = [ "reth-codecs/optimism", "reth-ethereum-forks/optimism", "revm/optimism", ] alloy-compat = [ "reth-primitives-traits/alloy-compat", "alloy-rpc-types", ] test-utils = ["reth-primitives-traits/test-utils"] [[bench]] name = "recover_ecdsa_crit" harness = false [[bench]] name = "validate_blob_tx" required-features = ["arbitrary", "c-kzg"] harness = false [[bench]] name = "integer_list" harness = false