[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-codecs.workspace = true reth-ethereum-forks.workspace = true reth-rpc-types.workspace = true revm.workspace = true revm-primitives = { workspace = true, features = ["serde"] } # ethereum alloy-chains = { workspace = true, features = ["serde", "rlp"] } alloy-primitives = { workspace = true, features = ["rand", "rlp"] } alloy-rlp = { workspace = true, features = ["arrayvec"] } alloy-trie = { workspace = true, features = ["serde"] } ethers-core = { workspace = true, default-features = false, optional = true } nybbles = { version = "0.1.2", features = ["serde", "rlp"] } # crypto secp256k1 = { workspace = true, features = ["global-context", "recovery"] } # for eip-4844 c-kzg = { workspace = true, features = ["serde"], optional = true } # tracing tracing.workspace = true # misc smallvec = { version = "1.11", features = ["arbitrary", "serde", "union", "const_new"] } bytes.workspace = true byteorder = "1" clap = { workspace = true, features = ["derive"], optional = true } derive_more = "0.99" itertools = "0.11" modular-bitfield = "0.11.2" num_enum = "0.7" once_cell.workspace = true rayon.workspace = true serde.workspace = true serde_json.workspace = true sha2 = "0.10.7" sucds = "~0.6" tempfile.workspace = true thiserror.workspace = true zstd = { version = "0.12", features = ["experimental"] } ahash.workspace = true # `test-utils` feature hash-db = { version = "~0.15", optional = true } plain_hasher = { version = "0.2", optional = true } # arbitrary utils arbitrary = { workspace = true, features = ["derive"], optional = true } proptest = { workspace = true, optional = true } proptest-derive = { workspace = true, optional = true } strum = { workspace = true, features = ["derive"] } [dev-dependencies] arbitrary = { workspace = true, features = ["derive"] } assert_matches.workspace = true proptest.workspace = true proptest-derive.workspace = true rand.workspace = true revm-primitives = { workspace = true, features = ["arbitrary"] } nybbles = { workspace = true, features = ["arbitrary"] } alloy-trie = { workspace = true, features = ["arbitrary"] } serde_json.workspace = true test-fuzz = "4" toml.workspace = true triehash = "0.8" hash-db = "~0.15" plain_hasher = "0.2" # necessary so we don't hit a "undeclared 'std'": # https://github.com/paradigmxyz/reth/pull/177#discussion_r1021172198 criterion.workspace = true pprof = { workspace = true, features = ["flamegraph", "frame-pointer", "criterion"] } secp256k1.workspace = true [features] default = ["c-kzg"] asm-keccak = ["alloy-primitives/asm-keccak"] arbitrary = [ "revm-primitives/arbitrary", "reth-rpc-types/arbitrary", "reth-ethereum-forks/arbitrary", "nybbles/arbitrary", "alloy-trie/arbitrary", "alloy-chains/arbitrary", "dep:arbitrary", "dep:proptest", "dep:proptest-derive", ] c-kzg = ["dep:c-kzg", "revm/c-kzg", "revm-primitives/c-kzg"] clap = ["dep:clap"] optimism = [ "reth-codecs/optimism", "revm-primitives/optimism", "reth-ethereum-forks/optimism", "revm/optimism", ] test-utils = ["dep:plain_hasher", "dep:hash-db", "dep:ethers-core"] [[bench]] name = "recover_ecdsa_crit" harness = false [[bench]] name = "trie_root" required-features = ["arbitrary", "test-utils"] harness = false [[bench]] name = "nibbles" harness = false