[package]
name = "reth-rpc"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
homepage.workspace = true
repository.workspace = true
description = "Reth RPC implementation"

[lints]
workspace = true

[dependencies]
# reth
reth-chainspec.workspace = true
reth-primitives = { workspace = true, features = ["secp256k1"] }
reth-primitives-traits.workspace = true
reth-rpc-api.workspace = true
reth-rpc-eth-api.workspace = true
reth-engine-primitives.workspace = true
reth-errors.workspace = true
reth-metrics.workspace = true
reth-provider.workspace = true
reth-transaction-pool.workspace = true
reth-network-api.workspace = true
reth-rpc-engine-api.workspace = true
reth-revm = { workspace = true, features = ["witness"] }
reth-tasks = { workspace = true, features = ["rayon"] }
reth-consensus-common.workspace = true
reth-rpc-types-compat.workspace = true
revm-inspectors.workspace = true
reth-network-peers = { workspace = true, features = ["secp256k1"] }
reth-evm.workspace = true
reth-rpc-eth-types.workspace = true
reth-rpc-server-types.workspace = true
reth-network-types.workspace = true
reth-consensus.workspace = true
reth-node-api.workspace = true

# ethereum
alloy-consensus.workspace = true
alloy-signer.workspace = true
alloy-signer-local.workspace = true
alloy-eips = { workspace = true, features = ["kzg"] }
alloy-dyn-abi.workspace = true
alloy-genesis.workspace = true
alloy-network.workspace = true
alloy-primitives.workspace = true
alloy-rlp.workspace = true
alloy-rpc-types-beacon = { workspace = true, features = ["ssz"] }
alloy-rpc-types.workspace = true
alloy-rpc-types-eth = { workspace = true, features = ["jsonrpsee-types", "serde"] }
alloy-rpc-types-debug.workspace = true
alloy-rpc-types-trace.workspace = true
alloy-rpc-types-mev.workspace = true
alloy-rpc-types-txpool.workspace = true
alloy-rpc-types-admin.workspace = true
alloy-rpc-types-engine.workspace = true
alloy-serde.workspace = true
revm = { workspace = true, features = ["optional_block_gas_limit", "optional_eip3607", "optional_no_base_fee"] }
revm-primitives = { workspace = true, features = ["serde"] }

# rpc
jsonrpsee.workspace = true
http.workspace = true
http-body.workspace = true
hyper.workspace = true
jsonwebtoken.workspace = true
serde_json.workspace = true

# async
async-trait.workspace = true
tokio = { workspace = true, features = ["sync"] }
tokio-stream.workspace = true
tower.workspace = true
pin-project.workspace = true
parking_lot.workspace = true

# misc
tracing.workspace = true
tracing-futures.workspace = true
futures.workspace = true
rand.workspace = true
serde.workspace = true
thiserror.workspace = true
derive_more.workspace = true

[dev-dependencies]
reth-evm-ethereum.workspace = true
reth-testing-utils.workspace = true
reth-transaction-pool = { workspace = true, features = ["test-utils"] }
reth-provider = { workspace = true, features = ["test-utils"] }

alloy-consensus.workspace = true

jsonrpsee-types.workspace = true
jsonrpsee = { workspace = true, features = ["client"] }

[features]
js-tracer = ["revm-inspectors/js-tracer", "reth-rpc-eth-types/js-tracer"]
